System having a plurality of unmanned aerial vehicles and a method of controlling a plurality of unmanned aerial vehicles

ABSTRACT

A system comprising, a plurality of unmanned aerial vehicles and a single controller for controlling said plurality of unmanned aerial vehicles, wherein the single controller is configured such that it can broadcast a command to all of the plurality of unmanned aerial vehicles so that each of the plurality of unmanned aerial vehicles receive the same command; and wherein each of the unmanned aerial vehicles comprise a memory which stores a plurality of predefined flight paths each of which is assigned to a respective command; and wherein each of the unmanned aerial vehicles comprise a processor which can, (i) receive a command which has been broadcasted by the single controller to said plurality of unmanned aerial vehicles, (ii) retrieve from the memory of that aerial vehicle the flight path which is assigned in the memory to that command, and (iii) operate the aerial vehicle to follow the retrieved flight path. There is further provided a corresponding method of controlling a plurality of unmanned aerial vehicles.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority to U.S. Provisional Application No.62/460,703, filed Feb. 17, 2017, which is hereby incorporated byreference herein in its entirety.

FIELD

The present disclosure concerns a system comprising, a plurality ofunmanned aerial vehicles which can fly simultaneously to form a swarm ofunmanned aerial vehicles, and a single controller for controlling saidplurality of unmanned aerial vehicles.

INTRODUCTION

In existing systems which comprise a plurality of unmanned aerialvehicles which are to fly together as a swarm, different radiocontrollers are used to control each vehicle in the swarm.Disadvantageously, this requires large bandwidth since individualcontrol commands must be sent by each radio controller to its respectivevehicle in the swarm i.e. the number of control commands which must besent correspond to the number of vehicles in the swarm. Additionally, ifthe swarm is to perform a particular choreography then the sending ofcommands by the different radio controllers must be synchronized.

A further disadvantage with existing systems is that in order to avoidcollision with other vehicles in the swarm, each vehicle in the swarm isrequired to know the position of every other vehicle in the swarm.

It is an aim of the present disclosure to mitigate or obviate at leastsome of the above-mentioned disadvantages.

SUMMARY OF THE DISCLOSURE

According to the present disclosure there is provided a systemcomprising, a plurality of unmanned aerial vehicles and a singlecontroller for controlling said plurality of unmanned aerial vehicles,wherein the single controller is configured such that it can broadcast acommand to all of the plurality of unmanned aerial vehicles so that eachof the plurality of unmanned aerial vehicles receives the same command;and wherein each of the unmanned aerial vehicles comprises a memory,which stores at least one predefined flight plans each of which isassigned to a respective command; and wherein each of the unmannedaerial vehicles comprises a processor which can, (i) receive a commandwhich has been broadcasted by the single controller to said plurality ofunmanned aerial vehicles, (ii) retrieve from the memory of that aerialvehicle the flight plan which is assigned in the memory to that command,and (iii) operate the aerial vehicle to follow the retrieved flightplan.

In an embodiment each of said predefined flight plans comprises arespective flight path which specifies a plurality of spatialcoordinates for an aerial vehicle to occupy, wherein each spatialcoordinate is associated with a discrete time in a time period.

In an embodiment the spatial coordinates for corresponding discretetimes specified in the flight plans associated with the same command inthe memories of the different vehicles are different between vehicles,so that no two vehicles will be located at the same spatial coordinatesat the same point in time when the vehicles are operated to follow aretrieved flight plan in response to receiving a broadcasted command.

In an embodiment the memory of each vehicle stores a plurality ofpredefined flight plans each of which is assigned to a respectivecommand.

In an embodiment the single controller is configured to broadcast atleast one command to said plurality of unmanned aerial vehicles, whereinsaid at least one command defines a choreography for the plurality ofunmanned vehicles based on the predefined flight plans stored in thememories of the plurality of unmanned vehicles.

In an embodiment the single controller is configured to broadcast,consecutively, a plurality of commands, wherein said plurality ofcommands define a choreography for the plurality of unmanned vehiclesbased on the predefined flight plans stored in the memories of theplurality of unmanned vehicles.

Preferably the single controller is configured to broadcast a predefinedseries of commands. In the preferred embodiment in each predefinedseries, for adjacent commands in the predefined series the endconditions specified in the flight plan assigned in the memory to one ofsaid commands are equal to start conditions specified in the flight planassigned in the memory to the next command in said series.

In an embodiment the single controller is configured to broadcast a nextcommand before the plurality of unmanned vehicles have completed theirrespective flight plans assigned to the last command which the singlecontroller broadcasted.

In an embodiment the processor is further configured to carry out acheck to determine if the aerial vehicle can follow the retrieved flightplan without collision with an object, and if the processor determinesthat the aerial vehicle cannot follow the retrieved flight plan withoutcollision then the processor will operate the aerial vehicle to performa default action.

In an embodiment the processor is further configured to carry out acheck to determine if the aerial vehicle has sufficient resources tofollow the retrieved flight plan, and if the processor determines thatthe aerial vehicle has insufficient resources to follow the retrievedflight plan then the processor will operate the aerial vehicle toperform a default action.

In an embodiment the processor is further configured to detect if nocommand has been retrieved within a predefined time period, and inresponse to having not received a command within the predefined timeperiod the processor will operate the aerial vehicle to perform adefault action.

In an embodiment the default action comprises following a default flightplan.

In an embodiment the default flight plan comprises a flight path whichspecifies a plurality of spatial coordinates for an aerial vehicle tooccupy, wherein each spatial coordinate is associated with a discretetime in a time period, and wherein the spatial coordinates specified inthe default flight plans for corresponding discrete times differsbetween vehicles, and wherein the spatial coordinates specified in thedefault flight plans differ to the spatial coordinates for correspondingdiscrete times specified in said flight plans stored in the memories ofthe other vehicles in the system, so that no two vehicles will belocated at the same spatial coordinates at the same point in time whenexecuting their default flight plan or retrieved flight plan.

In an embodiment the default flight plan comprises the landing of theunmanned aerial vehicle.

In an embodiment the spatial coordinates defining a start of the defaultflight plan are equal to the spatial coordinates defining a start of theretrieved flight plan, and the spatial coordinates defining an end ofthe default flight plan are equal to the spatial coordinates defining anend of the retrieved flight plan.

In an embodiment, for each respective command, the flight plans assignedin the memories of all the unmanned aerial vehicles to that command,have same time duration.

In an embodiment a flight plan of at least one unmanned aerial vehicleincludes a period wherein the unmanned vehicle hovers in a singleposition for a period of time so that said flight plan has the same timeduration as the flight plans followed by the other unmanned aerialvehicles.

In an embodiment in at least some of the unmanned aerial vehicles thereis further stored in the memory of that unmanned aerial vehicle a set ofconditions for one or more payloads provided on said unmanned aerialvehicle, and wherein the set of conditions are assigned to a flight planstored in memory; and wherein the processor is further configured to,retrieve from the memory the set of conditions assigned to the flightplan which that vehicle is about to follow, and to operate the one ormore payloads on said unmanned aerial vehicle so that they meet theconditions specified in the retrieved set of conditions.

In an embodiment the set of conditions may comprise any one or moreselected from the group comprising, light intensity for a light sourceprovided on the aerial vehicle; an orientation for a light sourceprovided on the aerial vehicle; a color for a light source provided onthe aerial vehicle; whether a camera provided on the aerial vehicleshould record still images, or whether the camera should record video,or whether the camera should be turned off; and/or a motion profile foran actuator provided on the aerial vehicle.

In an embodiment each of the unmanned aerial vehicles comprise a memorywhich stores a plurality of flight plan sets, each flight plan setcomprising a plurality of predefined flight plans each of which isassigned to a respective command; and wherein the single controller isfurther configured such that it can send a command, which is addressedto a single unmanned aerial vehicle, which identifies one of the set offlight plans which that single unmanned aerial vehicle is to use.

In an embodiment the plurality of unmanned aerial vehicles all have thesame plurality of flight plan sets, and that the number of flight plansets is at least equal to the number of unmanned aerial vehicles in thesystem.

In an embodiment the user may control the single controller i.e. thesingle controller may be slaved to a user. The user can select whichcommand(s) the single controller should broadcast, and then initiate thesingle controller to send the selected command. The user can operate thesingle controller to send commands which, for example, cause the aerialvehicles to start, stop, pause, to perform a default action, or to shutdown the vehicle(s).

In an embodiment the system further comprises a master controller whichcan communicate with the single controller, and wherein the mastercontroller can send commands to the single controller which cause thesingle controller to broadcast a selected command to the plurality ofunmanned aerial vehicles.

In an embodiment the master controller is a controller which isconfigured to control the motion of objects on a stage, and wherein thecommands which the master controller send to the single controllerdepend on the position which the objects occupy on the stage.

In an embodiment the controller is further configured to send alocalization signal which can be used to determine the distance betweensaid single controller and each vehicle.

It should be understood that in each of the embodiments described inthis application, optionally each vehicle may further comprise arespective receiver, which can receive a command which has beenbroadcast by the single controller, and can pass the receivedbroadcasted command to the processor for processing. In each respectivevehicle the respective receiver is preferably operably connected to theprocessor so that the receiver can pass received broadcasted commands tothe processor for processing. It should also be understood that in eachof the embodiments described in this application, optionally eachvehicle may further comprise a clock. Most preferably the processor ofeach vehicle further comprises a clock which can measure time. In eachrespective vehicle the respective clock of that vehicle is preferablyoperably connected to the processor, so that the processor can read thetime measurement on the clock or so that the clock can send its timemeasurement to the processor. It should also be understood that thesingle controller of any of the embodiments described in thisapplication, may optionally further comprise a clock which can measuretime; in such an embodiment the clock is preferably integral to thesingle controller. In a variation of the embodiment the clock isseparate to the single controller but is operable connected to thesingle controller (via a wired or wireless connection for example); insuch an embodiment the system comprises the clock which is operablyconnected to the single controller, so that the single controller canread the time measurement on the clock, or so that the clock can sendits time measurement to the single controller. The clock of eachrespective vehicle may be synchronized to a reference clock (such as asystem-wide reference clock); this may be achieved by providingsynchronization information in a command broadcasted by the singlecontroller; upon receipt of such a command the synchronizationinformation is used by the clock to synchronize the clock of thatvehicle to the reference clock. This may be achieved by includingstandard clock synchronization data in the broadcasted command (forexample using a Reference Time Broadcast synchronization method or theTime Protocol defined in the Internet Protocol Suite), by including acustom synchronization payload data (for example, by embedding thecurrent time of the reference clock in GPS time format into thebroadcasted command; the processor of each vehicle can then measure itslocal time when the command is received, compute the difference to thetime of the reference clock, and correct its local time by thedifference). The reference clock can be provided by a clock connected tothe single controller (for example, a Real Time Clock module or a Quartzoscillator), or the single controller can receive an external timesignal (for example, the single controller may receive a time signalfrom a GPS receiver, or from a receiver connected to the United StatesNational Institute of Standards and Technology's HF shortwave radio).Alternatively, the clock of each respective vehicle may be synchronizedto a reference clock through a signal that is broadcast by one ormultiple transmitters that are separate from the controller (for examplethe current reference clock time can be calculated using signalsreceived from Global Navigation Satellite Systems, or by receivingterrestrial longwave radio time signals; the local clock of the vehiclecan then be set to the reference clock time). Preferably, the singlecontroller is then also equipped to synchronize to the same referenceclock. The above methods can be used to synchronize the time (byadjusting the current time of the vehicle clock), the rate of the clock(by adjusting the rate of the clock such that the time differencebetween two reception events, observed on a vehicle, matches the timedifference indicated by the two received time information), or both.

In an embodiment the command broadcasted by the single controllerfurther comprises a starting time or a delay. Preferably the startingtime specifies the time when the processor should execute the flightplan. The starting time may comprise an absolute time with respect to atime of a reference clock (such as a system-wide reference clock; areference clock is a clock to which both a clock of the singlecontroller and the clocks of the vehicles are synchronized to).Preferably the delay specifies a period which the processor of a vehicleshould wait, after said vehicle (preferably the processor of thatvehicle) has received the broadcasted signal, before executing theflight plan.

The processor may be configured to determine if a starting timespecified in a broadcasted command which has been received, is within apredefined time range. The processor may be further configured tooperate the vehicle to perform a default action if the determineddifference is outside of said predefined time range.

The processor may be configured to determine if a delay time specifiedin a broadcasted command which has been received, is within a validrange. The processor may be further configured to operate the vehicle toperform a default action if the determined difference is outside of saidvalid range.

In an embodiment the processor is configured to receive a command whichhas been broadcast by the single controller and determines if thatcommand is valid based on the last flight plan which that vehicleexecuted. Preferably the processor is configured to receive a command,and retrieve from the memory the flight plan which is assigned to thatcommand which was received; the processor then compares the startingconditions specified in the retrieved flight plan with the endconditions specified in the flight plan which the aerial vehicle lastexecuted; the processor initiates the vehicle to execute the retrievedflight plan only if starting conditions specified in the retrievedflight plan are equal to the end conditions specified in the flight planwhich the aerial vehicle last executed. Preferably if startingconditions specified in the retrieved flight plan are not equal to theend conditions specified in the flight plan which the aerial vehiclelast executed, the processor initiates the vehicle to execute a defaultaction.

In another embodiment the command(s) broadcasted by the singlecontroller contain at least one flight plan; and wherein the processorof each aerial vehicle is further configured to i) retrieve the at leastone flight plan from the broadcasted command after it has been receivedat the vehicle ii) and store the retrieved flight plan in the memory ofthat aerial vehicle. The processor might further be configured to carryout a check to determine if any of the at least one flight plan meetspredefined conditions, and to store the flight plans that meet one ormore predefined conditions; said one or more predefined conditions arepreferably stored in the memory of that aerial vehicle. The predefinedconditions may, for example, be dependent on the current position of thevehicle. For example, a predefined condition may be that the differencebetween the starting position specified in a retrieved flight plan andthe current position of the vehicle must be within a predefinedthreshold, in order for the processor to store the retrieved flightplan. In such a case the processor of the vehicle compares the startingposition of a retrieved flight plan to the current position of thevehicle (the current position of the vehicle can be determined usingsuitable means in the art such as GPS). If the distance (preferablyEuclidean distance) between the starting position of a retrieved flightplan and current position of the vehicle is smaller than a predefinedthreshold, the processor determines that this specific predefinedcondition is met.

In another example a predefined condition may comprise a condition thatthe charging station to which the vehicle is connected matches thecharging station identifier contained in the flight plan in order forthe processor to execute the retrieved flight plan: For example, theposition can refer to a specific charging position of a vehicle;Specifically, a vehicle might be connected to charging station number‘1’ and the flight plans may further contain a charging stationidentifier; The processor would then store the flight plan in memoryonly if the charging station to which the vehicle is connected matchesthe charging station identifier contained in the flight plan.

In another example a predefined condition may comprise a condition thatis dependent on a physical or electrical characteristic of the vehicle.For example, a predefined condition may comprise the condition that avehicle type identifier which is contained in the retrieved flight planmust be the same as the vehicle type identifier stored in memory of thatvehicle, in order for the processor to execute the retrieved flightplan. In this case the flight plan may further specify a vehicle typeidentifier. If the processor determines that the vehicle type is of thesame type specified in the vehicle type identifier (e.g. by comparingthe vehicle type identifier contained in the retrieved flight plan, to avehicle type identifier stored in memory), it stores the flight plan insaid memory.

In another example a predefined condition may comprise a condition thatis dependent on a parameter stored in the memory of the vehicle. Forexample, a predefined condition may comprise the condition that a valuefor a specific parameter specified in the flight plan is the same as thevalue for the same specific parameter stored in the vehicles memory, inorder for the processor to store the retrieved flight plan. For example,the flight plan may further specify a value for a specific parameter. Ifthe processor determines that the value for the specific parameterspecified in the flight plan is the same as the one stored in thevehicles memory, it stores the flight plan in memory. The processor ofeach respective vehicle may be further configured to send anacknowledgement signal if it stored any of the at least one flight plan.Said acknowledgement signal is preferably sent to the single controller.

According to a further aspect of the present disclosure there isprovided a method of controlling a plurality of unmanned aerialvehicles, the method comprising the steps of,

-   -   using a single controller to broadcast a command to all of the        plurality of unmanned aerial vehicles so that each of the        plurality of unmanned aerial vehicles receive the same command;        and    -   at each of the unmanned aerial vehicles,        -   receiving at the processor of that unmanned aerial vehicle            the command which has been broadcasted by the single            controller to said plurality of unmanned aerial vehicles;        -   retrieving from a memory of that aerial vehicle, wherein            said memory which stores a plurality of predefined flight            plans each of which is assigned to a respective command, the            flight plan which is assigned in the memory to that command            which has been received at the processor; and        -   operating the aerial vehicle to follow the retrieved flight            plan.

BRIEF DESCRIPTION OF THE DRAWINGS

The disclosure will be better understood with the aid of the descriptionof embodiments given by way of example only and illustrated by thefigures, in which:

FIG. 1 is a block diagram illustrating a system according to anembodiment of the present disclosure;

FIG. 2 is a block diagram illustrating and example of an unmanned aerialvehicle which can be used in the system shown in FIG. 1;

FIG. 3 is a block diagram illustrating an example of another type ofunmanned aerial vehicle which could be used in the system of FIG. 1;

FIG. 4 is a block diagram illustrating an example of another type ofunmanned aerial vehicle which could be used in the system of FIG. 1;

FIG. 5 is a block diagram illustrating a further embodiment of a systemaccording to the present disclosure;

FIG. 6 is a block diagram illustrating an example of an unmanned aerialvehicle 600 according to a further aspect of the present disclosure.

DETAILED DESCRIPTION

FIG. 1 is a block diagram illustrating a system 1 according to anembodiment of the present disclosure.

The system 1 comprises a plurality of unmanned aerial vehicles 3 and asingle controller 5 for controlling said plurality of unmanned aerialvehicles 3. FIG. 1 shows four unmanned aerial vehicles 3 however it willbe understood that the system could have any number of vehicles greaterthan one.

The single controller 5 is configured such that it can broadcast acommand 7 a-d to all of the plurality of unmanned aerial vehicles 3 sothat each of the plurality of unmanned aerial vehicles 3 receives thesame command 7 a-d. The controller may be implemented on a processor(e.g. the processor of a computer) which is connected to a transmitter,wherein the transmitter is used to transmit the commands 7 a-d which isreceived from said processor. In another embodiment the transmitter isconnected to the processor (via a wired connection or wirelessconnection), and is further connected (via a wired connection orwireless connection) to a plurality of other transmitters in a network,so that said transmitter can transmit commands to the other transmittersin the network. In one embodiment each of said other transmitters isconnected (via a wired connection or wireless connection) to one or moreadditional transmitters, so that each of said other transmitter cantransmit commands which they receive to said one or more additionaltransmitters. The transmitter which is connected to the processor andthe plurality of other transmitters (and/or said one or more additionaltransmitters) define a network of transmitters; the network oftransmitters can be used for localization. Thus, the transmitter whichis connected to the processor can transmit commands to the othertransmitters, and the other transmitters in turn broadcast the commandswhich they receive to the one or more additional transmitters; in thisway commands can be sent through the network; this allows commands to besent to transmitters and vehicles which would otherwise be out of therange of the transmitter which is connected to the processor. In yet afurther embodiment, the controller may be implemented on a plurality ofprocessors (e.g. respective processors of a plurality of computers)which are each connected to a plurality of transmitters to form anetwork.

FIG. 2 is a block diagram illustrating an example of an unmanned aerialvehicle 3 which can be used in the system 1 shown in FIG. 1. Eachunmanned aerial vehicle 3 comprises a memory 21 which stores a pluralityof predefined flight plans 23 a-d each of which is assigned to arespective command 7 a-d.

Each plan 23 a-d will comprise at least a flight path 32 a-d, wherein a‘flight path’ is a series of spatial coordinates for an aerial vehicle 3to occupy, wherein each spatial coordinate is associated with a discretetime in a time period. It should be understood that in some embodimentsthe flight plan may further comprise velocity, accelerations,orientations, and/or time values, for the vehicle; for example, theflight plan may specify that a flight path should be travelled at avelocity of 20 km/hr. It should be understood that the flight plan maycomprise any suitable parameters or values for the vehicle, but is willalways at least include a series of spatial coordinates.

In an embodiment, each flight plan 23-d may further comprise a series oforientations for the aerial vehicle 3 wherein each orientation isassociated with a discrete time in a time period (for example, in anembodiment each flight plan 23-d may further comprise an orientation forthe aerial vehicle 3 for each of the respective discrete times of acorresponding flight path 23 a-d, so as to provide a respectiveorientation for the vehicle for each respective spatial coordinate inthat respective flight path 23 a-d). In yet a further embodiment eachflight plan 23-d may further comprise any one or more of velocity,acceleration, and/or yaw orientation for the vehicle 3 for discretetimes over a time period. In an embodiment the unmanned aerial vehicle 3may comprise a processor 25 which is configured to determine thederivative of the spatial coordinates which are specified in a flightplan, with respect to time, so as to determine for each spatialcoordinate, a velocity and/or acceleration for the unmanned aerialvehicle 3. In an embodiment each unmanned aerial vehicle 3 may comprisea processor 25 which is configured to interpolate any of said spatialcoordinates, orientations, velocity, acceleration, and/or yaworientation, between two discrete times so as to determine spatialcoordinates, orientations, velocity, acceleration, and/or yaworientation for the vehicles during the period between said two discretetimes.

It should be understood that for each command 7 a-d the flight plan 23a-d assigned to that command 7 a-d will differ between vehicles 3. Forexample, if the system 1 has three aerial vehicles 3 then, in the memoryof the first aerial vehicle a first command 7 a will be assigned to afirst flight plan 23 a-d, and in the memory of the second aerial vehiclethe same first command 7 a will be assigned to a second flight plan 23a-d which is different to the first flight plan 23 a-d, and in thememory of the third aerial vehicle the same first command 7 a will beassigned to a third flight plan 23 a-d which is different to both thefirst and second flight plan 23 a-d. Specifically, for each command 7a-d the flight plan 23 a-d assigned to that command 7 a-d will differbetween vehicles 3 in the senses that they will specify differentspatial coordinates for each of the same discrete time instances; thisensures that none of aerial vehicles 3 will occupy the same spatialcoordinates at the same time instant. In the preferred embodiment foreach command 7 a-d the flight plan 23 a-d assigned to that command 7 a-dwill differ between vehicles 3 so that there will be at least athreshold distance between each of the aerial vehicles 3 at the sametime instant. For example for each command 7 a-d the flight paths of theflight plan 23 a-d assigned to that command 7 a-d will differ betweenthe vehicles; for example if the system 1 has three aerial vehicles 3then, in the memory of the first aerial vehicle a first command 7 a willbe assigned to a first flight plan 23 a-d which has a first flight path32 a-d which specifies a series of spatial coordinates for the firstaerial vehicle 3 to occupy at each of a plurality of predefined discretetimes in a time period; and in the memory of the second aerial vehiclethe same first command 7 a will be assigned to a second flight plan 23a-d which has second flight path which specifies a series of spatialcoordinates for the second aerial vehicle 3 to occupy at each of saidplurality of predefined discrete times in said time period, wherein,each of the spatial coordinates specified in the second flight path aredifferent to the spatial coordinates specified in the first flight pathfor each said plurality of predefined discrete times (i.e. the samediscrete times instances in the first and second flight paths havedifferent spatial coordinates; preferably each of the spatialcoordinates specified in the second flight path differ to the spatialcoordinates specified in the first flight path for each said pluralityof predefined discrete times by a threshold distance) so that the firstand second aerial vehicles will not collide if they execute theirrespective first and second flight plan 23 a-d in response to receivingthe first command 7 a. For example, the first flight path will include afirst time instant having first spatial coordinates associated with it;and the second flight path will include said same first time instant buthaving second spatial coordinates associated with it, whereby the firstand second spatial coordinates are different, and preferably differ by apredefined threshold distance. Likewise, in the memory of the thirdaerial vehicle the same first command 7 a will be assigned to a thirdflight plan 23 a-d which has third flight path which specifies a seriesof spatial coordinates for the third aerial vehicle 3 to occupy at aplurality of predefined discrete times in a time period, wherein, eachof the spatial coordinates specified in the third flight path aredifferent to the spatial coordinates specified in the first and secondflight paths, for each said plurality of predefined discrete times (i.e.the same discrete times instances in the first, second and third flightpaths have different spatial coordinates; preferably each of the spatialcoordinates specified in the third flight path differ to the spatialcoordinates specified in the first and second flight paths for each saidplurality of predefined discrete times by a threshold distance), so thatthe first, second and third aerial vehicles will not collide if theyexecute their respective first, second and third flight plans 23 a-d inresponse to receiving the first command 7 a. The different flight pathsspecified in the different flight plans differ in this manner betweenvehicles for all commands. In other words in no two flight plansassigned to the same command in the memories 21 of two differentvehicles, specifies the same spatial coordinates for the same discretetime instances. This ensures that vehicles can execute respective flightplans specified in respective flight plans assigned in the respectivememories with a command, in response to receiving a command broadcastedby the single controller, without the risk of colliding with oneanother.

Each unmanned aerial vehicle 3 further comprises a processor 25 whichcan, (i) receive a command 7 a-d which has been broadcasted by thesingle controller 5 to all of the plurality of unmanned aerial vehicles3 in the system 1, (ii) retrieve from the memory 21 of that aerialvehicle the flight plan 23 a-d which is assigned in the memory 21 ofthat aerial vehicle to that command 7 a-d, and (iii) operate the aerialvehicle to follow the retrieved flight plan 23 a-d.

For example, if the single controller 5 broadcasts a particular command7 b to all of the unmanned aerial vehicles 3 in the system 1, then ateach aerial vehicle 3 the processor 25 of that aerial vehicle 3 willreceive the broadcasted command 7 b and will retrieve from the memory 21of that aerial vehicle the corresponding flight plan 23 a-d which isassigned in the memory 21 to the command 7 b. The processor 25 of eachof the respective unmanned aerial vehicles 3 in the system 1 will thenoperate that respective unmanned aerial vehicle to fly along a flightpath specified in the flight plan 23 a-d which was retrieved from thememory 21 of that respective unmanned aerial vehicle e.g. the processor25 will operate the propellers, and/or wing flaps, of the vehicle sothat the vehicle flies along said flight path. As mentioned, the spatialcoordinates specified in the flight paths of the flight plans 23 a-d ofthe different vehicles, which correspond to the same command, aredifferent for each point in time specified in the flight plan, so thatno vehicles will occupy the same position at the same time; this ensurethat the vehicles do not collide with each other when they execute therespective flight paths in response to receiving the broadcasted command7 b.

The plurality of unmanned aerial vehicles 3 of the system 1 can be flownsimultaneously to perform a predefined choreography without the risk ofcollision. The single controller 5 is configured to broadcast,consecutively, a plurality of commands 7 a-d, wherein said plurality ofcommands define a predefined choreography for the plurality of unmannedvehicles 3 based on the predefined flight plans 23 a-d which are storedin the memories 21 of the plurality of unmanned vehicles 3. For example,the single controller 5 may broadcast a first command 7 a to all of theunmanned aerial vehicles 3 in the system 1 in which case all of theunmanned aerial vehicles 3 will fly along the respective flight pathspecified in the flight plan 23 a-d associated in their respectivememories 21 with the first command 7 a (i.e. the flight plan 23 a-dassigned in the memories 21 with the first command 7 a); then the singlecontroller 5 may broadcast a second command 7 b to all of the unmannedaerial vehicles 3 in the system 1 in which case all of the unmannedaerial vehicles 3 will fly along the respective flight path of theflight plan 23 a-d associated in their respective memories 21 with thesecond command 7 b; then the single controller 5 may broadcast a thirdcommand 7 c to all of the unmanned aerial vehicles 3 in the system 1 inwhich case all of the unmanned aerial vehicles 3 will fly along therespective flight path of the flight plan 23 a-d associated in theirrespective memories 21 with the third command 7 c; and finally thesingle controller 5 may broadcast a fourth command 7 d to all of theunmanned aerial vehicles 3 in the system 1 in which case all of theunmanned aerial vehicles 3 will fly along the respective flight path ofthe corresponding flight plan associated in their respective memories 21with the fourth command 7 d. In some cases, the commands 7 a-d may besent in any particular order to achieve a desired choreography for theunmanned aerial vehicles 3 in the system 1 to perform. Typically, thefinal command which the single controller 5 will broadcast will be acommand which is associated in the memory 21 of at least one vehiclewith a flight plan 23 a-d which specifies a flight path which bringsthat respective vehicle to land. Typically, the first command which thesingle controller 5 will broadcast will be a command which is associatedin the memory 21 of at least one vehicle with a flight plan 23 a-d whichspecifies a flight path which comprises a takeoff from a landedposition.

In the most preferred embodiment the single controller is configured tobroadcast a predefined series of commands. In an embodiment a pluralityof predefined series of commands are provided, and the single controllermay broadcast any one or more of said predefined series. For example,plurality of predefined series of commands may comprise a firstpredefined series being a ‘first command 7 a-third command 7 c-fourthcommand 7 d’, a second predefined series being a ‘first command 7a-second command 7 b-fourth command 7 d’, and a third predefined seriesbeing a ‘first command 7 a-second command 7 b-third command 7 c’. In oneembodiment the single controller 5 can send any of the predefined seriesof commands 7 a-d only; in the aforementioned example the singlecontroller 5 may send either the first, second or third predefinedseries of commands 7 a-d only; in embodiment the single controller 5will not send any series of commands which are not in the predefinedseries of commands.

Most preferably, in each respective predefined series of commands, theboundary conditions of the respective flight plans 23 a-d associated inthe memories 21 of the aerial vehicles with consecutive commands areequal: For example, consider the first predefined series which is firstcommand 7 a-third command 7 c-fourth command 7 d; in a vehicle(preferably in ‘all’ of the aerial vehicles) a first flight plan 23 awhich is assigned in the memory 21 to the first command 7 a iscompatible with the a third flight plan 23 c which is assigned in thememory 21 to the third command 7 c, which allows the third command 7 cto be a valid command to broadcast after the first command 7 a has beenbroadcast; specifically the final position coordinates specified in theflight path provided in the first flight plan 23 a (i.e. the positioncoordinates specified for the final time instant provided in the flightplan of the first flight plan 23 a), and/or the final velocity specifiedin the first flight plan 23 a (i.e. the velocity specified for the finaltime instant provided in the first flight plan 23 a), and/or finalacceleration specified in the first flight plan 23 a (i.e. theacceleration specified for the final time instant provided in the firstflight plan 23 a), and/or the final yaw specified in the first flightplan 23 a (i.e. the yaw specified for the final time instant provided inthe first flight plan 23 a), are equal to respective start positioncoordinates specified in the flight path of the third flight plan 23 c(i.e. the position coordinates specified for the first time instantprovided in the flight plan of the third flight plan 23 c), and/or thestart velocity specified in the third flight plan 23 c (i.e. thevelocity for the first time instant provided in the third flight plan 23c), and/or start acceleration specified in the third flight plan 23 c(i.e. the velocity for the first time instant provided in the thirdflight plan 23 c), and/or the start yaw specified in the third flightplan 23 c (i.e. the yaw specified for the first time instant provided inthe third flight plan 23 c). Likewise in said vehicle (preferably in‘all’ of the aerial vehicles) the third flight plan 23 c which isassigned in the memory 21 to the third command 7 a is compatible withthe fourth flight plan 23 d which is assigned in the memory 21 to thefourth command 7 c, which allows the fourth command 7 d to be a validcommand to broadcast after the third command 7 c has been broadcast;specifically the final position coordinates specified in the flight pathprovided in the third flight plan 23 c (i.e. the position coordinatesspecified for the final time instant provided in the flight plan of thethird flight plan 23 c), and/or the final velocity specified in thethird flight plan 23 c (i.e. the velocity specified for the final timeinstant provided in the third flight plan 23 c), and/or finalacceleration specified in the third flight plan 23 c (i.e. theacceleration specified for the final time instant provided in the thirdflight plan 23 c), and/or the final yaw specified in the third flightplan 23 c (i.e. the yaw specified for the final time instant provided inthe third flight plan 23 c), is equal to the respective start positioncoordinates specified in the flight path of the fourth flight plan 23 d(i.e. the position coordinates specified for the first time instantprovided in the flight plan of the fourth flight plan 23 d), and/or thestart velocity specified in the fourth flight plan 23 d (i.e. thevelocity for the first time instant provided in the fourth flight plan23 d), and/or first acceleration specified in the fourth flight plan 23d (i.e. the velocity for the first time instant provided in the fourthflight plan 23 d), and/or the start yaw specified in the fourth flightplan 23 d (i.e. the yaw specified for the first time instant provided inthe fourth flight plan 23 d).

The above-described compatibility between conditions specified in thefirst flight plan 23 a and third flight plan 23 c and compatibilitybetween the conditions specified in the third flight plan 23 c andfourth flight plan 23 d allows the first predefined series which isfirst command 7 a-third command 7 c-fourth command 7 d to be valid andexecutable by the aerial vehicle(s). If for example the final positioncoordinates in the first flight plan 23 a were different to the startposition coordinates in the third flight plan 23 c then the thirdcommand 7 c (which is assigned in the memory to the third flight plan 23c) could not be sent consecutive to the first flight plan 23 a.

Even though the above example considers the first predefined seriesonly, it should be understood that all of the predefined series ofcommands are similar: in the second predefined series which is ‘firstcommand 7 a-second command 7 b-fourth command 7 d’, in the vehicle thefirst flight plan 23 a which is assigned in the memory 21 to the firstcommand 7 a is compatible with the a second flight plan 23 b which isassigned in the memory 21 to the second command 7 b, which allows thesecond command 7 b to be a valid command to broadcast after the firstcommand 7 a has been broadcast, and the second flight plan 23 b which isassigned in the memory 21 to the second command 7 b is compatible withthe fourth flight plan 23 d which is assigned in the memory 21 to thefourth command 7 d, which allows the fourth command 7 d to be a validcommand to broadcast after the second command 7 b has been broadcast. Inthe third predefined series which is ‘first command 7 a-second command 7b-third command 7 c’, in the vehicle the first flight plan 23 a which isassigned in the memory 21 to the first command 7 a is compatible withthe a second flight plan 23 b which is assigned in the memory 21 to thesecond command 7 b, which allows the second command 7 b to be a validcommand to broadcast after the first command 7 a has been broadcast, andthe third flight plan 23 c which is assigned in the memory 21 to thethird command 7 c is compatible with the third flight plan 23 c which isassigned in the memory 21 to the third command 7 c, which allows thethird command 7 c to be a valid command to broadcast after the secondcommand 7 b has been broadcast.

Thus, for each of the predefined series of command, the order ofcommands in the series is such that, consecutive commands lead toconsecutively executed flight plans wherein the start conditions of oneof the flight plans are equal to the end conditions of the previouslyexecuted flight plan (in another embodiment the start conditions of oneof the flight plans do not need to be precisely equal to the endconditions of the previously executed flight plan—a slight differencemay be tolerated; for example the start conditions of one of the flightplans do will differ from the end conditions of the previously executedflight plan by a predefined tolerance amount). In the most preferredembodiment for each of the predefined series of command, the order ofcommands in the series is such that, consecutive commands lead toconsecutively executed flight plans wherein the start conditions of oneof the flight plans are equal to the end conditions of the previouslyexecuted flight plan, for all of the plurality of aerial vehicles.

In another embodiment the processor 25 receives a command 7 a-d whichhas been broadcast by the single controller 5 and determines if thatcommand is valid based on the last flight plan 23 a-d which that vehicleexecuted. Specifically, the processor 25 receives a command 7 a-d, andretrieves from the memory 21 the flight plan 23 a-d which is assigned tothat command 7 a-d which was received; the processor 25 compares thestarting conditions specified in the retrieved flight plan 23 a-d withthe end conditions specified in the flight plan 23 a-d which the aerialvehicle last executed; the processor 25 initiates the vehicle to executethe retrieved flight plan 23 a-d only if starting conditions specifiedin the retrieved flight plan 23 a-d are equal to the end conditionsspecified in the flight plan 23 a-d which the aerial vehicle lastexecuted, otherwise the processor 25 initiates the vehicle to execute adefault action.

For example, consider that the last flight plan which the aerial vehicleexecuted was a first flight plan 23 a; the processor 25 of the vehiclethen receives a second command 7 b (for example) which has beenbroadcasted by the single controller 5; the processor 25 retrieves fromthe memory a second flight plan 23 b which is assigned to the secondcommand 7 b; the processor 25 compares the final position coordinatesspecified in the flight path provided in the first flight plan 23 a(which is the flight plan which the vehicle last executed) (i.e. theposition coordinates specified for the final time instant provided inthe flight plan of the first flight plan 23 a), and/or the finalvelocity specified in the first flight plan 23 a (i.e. the velocityspecified for the final time instant provided in the first flight plan23 a), and/or final acceleration specified in the first flight plan 23 a(i.e. the acceleration specified for the final time instant provided inthe first flight plan 23 a), and/or the final yaw specified in the firstflight plan 23 a (i.e. the yaw specified for the final time instantprovided in the first flight plan 23 a), to the respective startposition coordinates specified in the flight path of the second flightplan 23 b (i.e. the position coordinates specified for the first timeinstant provided in the flight plan of the second flight plan 23 b),and/or the start velocity specified in the second flight plan 23 b (i.e.the velocity for the first time instant provided in the second flightplan 23 b), and/or start acceleration specified in the second flightplan 23 b (i.e. the velocity for the first time instant provided in thesecond flight plan 23 b), and/or the start yaw specified in the secondflight plan 23 b (i.e. the yaw specified for the first time instantprovided in the second flight plan 23 b). Only if the final positioncoordinates specified in the flight path provided in the first flightplan 23 a are equal to the start position coordinates specified in theflight path of the second flight plan 23 b, and/or the final velocityspecified in the first flight plan 23 a is equal to the start velocityspecified in the second flight plan 23 b, and/or final accelerationspecified in the first flight plan 23 a is equal to the startacceleration specified in the second flight plan 23 b, and/or the finalyaw specified in the first flight plan 23 a is equal to start yawspecified in the second flight plan 23 b, does the processor 25 deem thebroadcasted second command 7 b to be valid, and initiates the aerialvehicle to executed said retrieved second flight plan 23 b.

If for example the final position coordinates specified in the flightpath provided in the first flight plan 23 a are not equal to the startposition coordinates specified in the flight path of the second flightplan 23 b, and/or the final velocity specified in the first flight plan23 a is not equal to the start velocity specified in the second flightplan 23 b, and/or final acceleration specified in the first flight plan23 a is not equal to the start acceleration specified in the secondflight plan 23 b, and/or the final yaw specified in the first flightplan 23 a is not equal to start yaw specified in the second flight plan23 b, then the processor 25 deems the broadcasted second command 7 b tobe invalid, and initiates the aerial vehicle to executed a defaultaction.

Even though the above example described the processor 25 performingcomparisons of the conditions in the first and second flight plans 23a,b assigned to respective first and second commands 7 a,b it should beunderstood that the processor 25 performs a similar comparison for allof the commands it receives. It should also be understood that theprocessor 25 of all of the vehicles are configured as described above.

It should be understood the in one embodiment the processor 25 of eachvehicle, determines if a broadcasted command is valid based on the lastflight plan 23 a-d which that vehicle executed; in another embodimentthere is provided one or more predefined series of commands for thesingle controller to broadcast to the vehicles (as described above); andin yet a further embodiment a combination of the processor 25 whichdetermines if a broadcasted command is valid based on the last flightplan 23 a-d which that vehicle executed and one or more predefinedseries of commands for the single controller to broadcast is provided,so that the processor 25 performs a check to ensure that the broadcastedpredefined series of commands are valid.

In the most preferred embodiment the single controller 5 is configuredto broadcast the next command before the plurality of unmanned vehicles3 have completed the respective flight path of the flight plan 23 a-dassigned to the last command which the single controller 5 broadcast.For example, the single controller 5 will preferably broadcast thesecond command 7 b to all of the unmanned aerial vehicles 3 in thesystem 1 before the unmanned aerial vehicles 3 have completed therespective flight paths of the flight plans 23 a-d associated with thefirst command 7 a. Likewise the single controller 5 will preferablybroadcast the third command 7 c to all of the unmanned aerial vehicles 3in the system 1 before the unmanned aerial vehicles 3 have completedtheir respective flight paths of the flight plans 23 a-d associated intheir respective memories 21 with the second command 7 b etc.

In a preferred embodiment the processor 25 of each vehicle 3 isconfigured to carry out a check to determine if the aerial vehicle canfollow the flight path specified in the flight plan 23 a-d associated inthe memory 21 with a received command 7 a-d, without collision with anobject. Preferably the processor 25 is configured carry out a check todetermine if the aerial vehicle can execute the flight path specified ina flight plan 23 a-d without collision with an object. Preferably theprocessor 25 of a vehicle is configured such that, when the vehiclereceives a command 7 a-d which has been broadcast by the singlecontroller 5, the processor 25 will then determine if the vehicle 3 canexecute the flight path of the flight plan 23 a-d associated in thememory 21 with a received command 7 a-d without collision with anobject.

In one embodiment, a vehicle 3 will have stored in its memory 21,predetermined spatial coordinates defining the position of stationaryobjects present in the environment of the vehicle (these predeterminedspatial coordinates for objects may have determined dynamically, orpredetermined, using any suitable means); when the vehicle 3 receives acommand which has been broadcast by the single controller 5 theprocessor 25 determines the distance (preferably Euclidean distance)between, each of the spatial coordinates specified in the flight path ofthe flight plan 23 a-d which is associated in the memory 21 with thereceived command, and each of the predetermined spatial coordinatesdefining the position of stationary objects stored in the memory 21; ifany of the determined distances are below a threshold distance value,then the processor 25 will determine that a collision with an objectwill occur if the vehicle executes the flight path of the flight plan 23a-d which is associated in the memory 21 with the received command.

In another embodiment, a vehicle comprises a time-of-flight camera, asonar, and/or a laser, and/or any suitable sensor, which can be used toscan the environment of the vehicle 3 and determine spatial coordinatesdefining the position of stationary objects present in the environment(the use of a time-of-flight camera, a sonar, and/or a laser todetermine spatial coordinates defining the position of stationaryobjects is known in the art). When the vehicle 3 receives a commandwhich has been broadcast by the single controller 5 the processor 25determines the distance (preferably Euclidean distance) between, each ofthe spatial coordinates specified in the flight path of the flight plan23 a-d which is associated in the memory 21 with the received command,and each of the spatial coordinates defining the position of stationaryobjects determined by the time-of-flight camera, sonar, and/or a laser;if any of the determined distances are below a threshold distance value,then the processor 25 will determine that a collision with an objectwill occur if the vehicle executes the flight path of the flight plan 23a-d which is associated in the memory 21 with the received command.

In yet another embodiment, the command 7 a-d which the single controller5 broadcasts to the vehicles 3 will further comprise spatial coordinatesdefining the position of stationary objects present in the environment;when the vehicle 3 receives a command which has been broadcast by thesingle controller 5 the processor 25 determines the distance (preferablyEuclidean distance) between, each of the spatial coordinates specifiedin the flight path of the flight plan 23 a-d which is associated in thememory 21 with the received command, and each of the spatial coordinatesspecified in broadcasted command 7 a-d that was received; if any of thedetermined distances are below a threshold distance value, then theprocessor 25 will determine that a collision with an object will occurif the vehicle executes the flight path of the flight plan 23 a-d whichis associated in the memory 21 with the received command.

In yet a further embodiment, the command 7 a-d which the singlecontroller 5 broadcasts to the vehicles 3 will further comprise spatialcoordinates defining the position of objects present in the environmentand also movement information (e.g. direction of movement and/or speedof movement) of the objects; when the vehicle 3 receives a command whichhas been broadcast by the single controller 5 the processor 25 uses themovement information to calculate a series of spatial coordinatesdefining the positions of the objects over a time period correspondingto the time period of the flight path of the flight plan 23 a-dassociated in the memory 21 with the received command; then theprocessor 25 determines the distance (preferably Euclidean distance)between, each of the spatial coordinates specified in the flight path ofthe flight plan 23 a-d which is associated in the memory 21 with thereceived command, and each of the spatial coordinates in the calculatedseries of spatial coordinates defining the positions of the objects; ifany of the determined distances are below a threshold distance value,then the processor 25 will determine that a collision with an objectwill occur if the vehicle executes the flight path of the flight plan 23a-d which is associated in the memory 21 with the received command.

In each of the above-mentioned examples, if the processor 25 determinesthat the aerial vehicle 3 cannot execute the flight path of the flightplan 23 a-d which is associated in the memory 21 with the receivedcommand without collision, then the processor 25 will operate the aerialvehicle 3 to perform a default action. For example, when the singlecontroller 5 broadcasts the first command 7 a to all of the unmannedaerial vehicles 3 in the system 1, the processor 25 of each unmannedaerial vehicles 3 will retrieve the corresponding flight plan 23 a-dwhich is associated in its memory 21 with the first command 7 a.However, before the processor 25 of the respective unmanned aerialvehicle 3 operates that respective unmanned aerial vehicle 3 to flyalong the flight path specified in the retrieved flight plan 23 a, itwill first check to determine if the aerial vehicle 3 can follow theflight path without collision with an object. Only if the processor 25determines that the aerial vehicle 3 can follow the flight path withoutcollision with an object will the processor 25 operate that respectiveunmanned aerial vehicle to fly along the flight path specified in theretrieved flight plan 23 a. However, if the processor 25 determines theaerial vehicle 3 will collide with an object by following the flightpath specified in the retrieved flight plan 23 a, then the processor 25will operate the aerial vehicle to perform a default action. The defaultaction maybe that the processor 25 operates the vehicle 3 to follow adefault flight plan wherein the default flight plan is a flight plan 23a-d associated in the memory 21 with another command 7 a-d, and/or maybe that the processor 25 operates the vehicle 3 to follows a defaultflight plan whereby the vehicle hovers only, and/or may be that theprocessor 25 operates the vehicle 3 to follow a default flight planwhich brings the vehicle to another position, and/or may be that theprocessor 25 operates the vehicle 3 to follow a default flight planwhich brings the vehicle to land (in other words where the final spatialcoordinates specified in the default flight path are spatial coordinatesrepresenting a position at ground level or a position on a landingplatform such as the surface of stage/table/object). The default flightplans will be stored in the respective memories 21 of the respectivevehicles 3.

It should be understood that said default flight plan will comprises atleast a ‘flight path’, which is a series of spatial coordinates for anaerial vehicle 3 to occupy, wherein each spatial coordinate isassociated with a discrete time in a time period. It should beunderstood that the spatial coordinates specified in the flight path ofthe default flight plan will differ from the spatial coordinates forcorresponding discrete times specified in the flight paths of flightplans 23 a-d stored in the memories of the other respective vehicles;likewise the spatial coordinates specified in the flight path of thedefault flight plan will differ from the spatial coordinates forcorresponding discrete times specified in the flight paths of otherdefault flight plans stored in the memories of the other respectivevehicles. This ensures that no two vehicles will be at the same spatialcoordinates as the same point in time; thus vehicles can execute safelythe default flight plans which it has stored in its memory 21, withoutthe risk of the vehicle colliding with other vehicles 3 which areexecuting either a default flight plan or flight plan 23 a-d which theyhave stored in their respective memories 21.

In another embodiment, each default flight plan may further comprise aseries of orientations for the aerial vehicle 3 wherein each orientationis associated with a discrete time in a time period. In yet a furtherembodiment each default flight plan may further comprise any one or moreof velocity, acceleration, and/or yaw orientation for the vehicle 3 fordiscrete times over a time period. In an embodiment the unmanned aerialvehicle 3 the processor 25 may be configured to determine the derivativeof the spatial coordinates which are specified in a default flight plan,with respect to time, so as to determine for each spatial coordinate, avelocity and/or acceleration for the unmanned aerial vehicle 3. In anembodiment the processor 25 may be configured to interpolate any of saidspatial coordinates, orientations, velocity, acceleration, and/or yaworientation, between two discrete times of a default flight plan so asto determine spatial coordinates, orientations, velocity, acceleration,and/or yaw orientation for the vehicles during the period between saidtwo discrete times.

In an embodiment a different default action is assigned to each flightplan 23 a-d. Most preferably a different default flight plan is assignedto each flight plan 23 a-d. For example, if the vehicle receives a firstcommand 7 a and the processor 25 subsequently retrieves from the memory21 the flight plan 23 a associated with a first command 7 a anddetermines that by following the flight path specified in the retrievedflight plan 23 a the vehicle would collide with an object, then thedefault action maybe that the processor 25 operates the vehicle tofollow a first default flight plan (which may involve bringing thevehicle to land). If for example the vehicle received a first command 7a and had executed the flight plan 23 a associated with that firstcommand 7 a, and then receives a second command 7 b and the processor 25subsequently retrieves from the memory the flight plan 23 b associatedwith a second command 7 b and determines that by following the flightpath specified in the retrieved flight plan 23 b the vehicle wouldcollide with an object, then the default action maybe that the processor25 operates the vehicle to follow a second default flight plan (whichmay involve bringing the vehicle to land), wherein the second defaultflight plan may be different to the first default flight plan (Forexample, the respective first and second default flight paths mayspecify different spatial coordinates for corresponding discrete times.For example, the final spatial coordinate of the flight path specifiedin the first default flight plan may be different to the final spatialcoordinate of flight path specified in the second default flight plan sothat landing positions of the first and second flight plans aredifferent). Thus, in this embodiment the memory 21 of each vehicle willhave a respective default action associated with each of its storedflight plans 23 a-d and that respective default action will be performedif the corresponding retrieved flight plan 23 a-d would result in thevehicle colliding with an object.

In an embodiment if, in any of the above-mentioned examples, theprocessor 25 determines that a collision with an object will occur ifthe flight path assigned in the memory 21 to a received command isexecuted, then the processor 25 will initiate the vehicle to carry out adefault action which is dependent on the last flight plan which thevehicle executed. In other words there may be a different default actionto execute depending on the on the last flight plan which the vehicleexecuted. For example, if the vehicle last executed a first flight plan23 a then the default action maybe to follow a first default flightplan, and if the vehicle last executed a second flight plan 23 a thenthe default action maybe to follow a second default flight plan.

In a further embodiment the processor 25 is further configured to carryout a check to determine if the aerial vehicle 3 has sufficientresources to execute a retrieved flight plan 23 a-d (e.g. determine ifthere is sufficient power in a battery of the vehicle 3 to enable thevehicle to navigate the full distance of the flight path specified inthe retrieved flight plan 23 a-d). When the vehicle 3 receives a command7 a-d which has been broadcast by the single controller 5 the processor25 retrieves from the memory 21 of the vehicle, the flight plan 23 a-dwhich is associated in the memory 21 with the retrieved command 7 a-d;the processor 25 then analyzes the retrieved flight plan 23 a-d using apredefined metric equation which provides a cost value indicated of thecost of executing the retrieved flight plan 23 a-d; the processor 25then compares the cost value to a threshold cost value, to determine ifthe vehicle 3 has sufficient resources to enable the vehicle 3 toexecute the retrieved flight plan 23 a-d. Said threshold cost value canbe a predefined fixed value (e.g. available motor power), or, theprocessor 25 may be further configured to calculate the threshold costvalue based on the amount of resources currently available in thevehicle (e.g. remaining battery).

For example, in order to check whether there are enough batteryresources available in a vehicle 3 to perform a retrieved flight plan 23a-d, the processor 25 determines the total amount of power required toexecute the flight plan (e.g. the total amount of power required for thevehicle to fly the flight path specified in the flight plan 23 a-d).Thismight, for example, be achieved by including in the flight plan thetotal amount of power that was required in a previously executed testflight. As another example, a simple model (e.g. a mathematical model)of the vehicle power consumption might be used: the sum over time of thevehicle's accelerations according to the flight plan multiplied by thevehicle mass and a motor-specific parameter. The parameter (e.g.motor-specific parameter) can for example be derived by testing thepower consumption on a load cell. Using any suitable means the processor25 will measure the current battery state (e.g. how much power isremaining in the battery) (this may also be done continuously as thevehicle is flying). For example, to measure the current battery state ofcharge the processor 25 may measure the amount of current that flows outof the battery and integrating it in time (Current integration method,also known as Coulomb counting). For example the processor 25 maydetermine the battery power required for the vehicle to travel theflight plan 23 a-d (which is assigned in the memory 21 to a receivedcommand), and compare said determined required battery power to thebattery power remaining in a battery of the vehicle; if the requiredbatter power exceeds the battery power remaining in a battery of thevehicle then the processor 25 will determine that the vehicle does nothave sufficient resources to execute the flight plan. In anotherexample, in order to check whether the flight path can be executed bythe vehicle, the vehicle extracts the maximum acceleration required bythe flight path (which is either given explicit, or can be extracted bytaking the derivative of the position over time, as mentioned above) andverify that this does not exceed a predefined threshold (e.g. thepredefined threshold may be the maximum acceleration which motors of thevehicle can provide).

If the processor 25 determines that the aerial vehicle 3 hasinsufficient resources to follow the retrieved flight path 23 a-d thenthe processor 25 will operate the aerial vehicle 3 to perform a defaultaction.

For example, when the single controller 5 broadcasts the first command 7a to all of the unmanned aerial vehicles 3 in the system 1, theprocessor 25 of each unmanned aerial vehicles 3 will retrieve thecorresponding flight plan 23 a which is associated in the memory 21 withthat first command 7 a. However, before the processor 25 of therespective unmanned aerial vehicle 3 operates that respective unmannedaerial vehicle to fly along the flight path specified in the retrievedflight plan 23 a, it will first check to determine if the aerial vehiclehas sufficient resources to follow the retrieved flight plan 23 a. Forexample the processor 25 will determine the amount of power which theaerial vehicle will require in order to travel the flight path specifiedin the retrieved flight plan 23 a; the processor 25 will then check theamount of power remaining in the battery of the aerial vehicle 3. If theamount of power remaining in the battery of the aerial vehicle is lessthan the amount of power which the aerial vehicle will require in orderto travel the flight path specified in the retrieved flight plan 23 a(e.g. is insufficient to allow the vehicle to navigate along the fullflight path specified in the flight plan 23 a), then the processor 25will operate the aerial vehicle 3 to perform a default action. Thedefault action may be that the processor 25 operates the vehicle tofollow another predefined default flight plan which requires less power(preferably in this case, a plurality of different default flight plansmay be available, and the processor 25 will first determine the powerrequired to execute each of the different default flight plans, and willselect the default flight plan which requires an amount of power whichcorresponds to the amount of power remaining in the battery of theaerial vehicle, or which requires less than the amount of powerremaining in the battery of the aerial vehicle; the processor 25 willthen operate vehicle to execute said selected default flight plan. Ifthere is more than one default flight plan which requires an amount ofpower which corresponds to the amount of power remaining in the batteryof the aerial vehicle, or which requires less than the amount of powerremaining in the battery of the aerial vehicle, then the processor 25will select the default flight plan which requires the least amount ofpower to execute and will operate the vehicle to execute the selecteddefault flight plan). It should be understood that the default actionmaybe that the processor 25 operates the vehicle to follow a flight planwhich has a flight path which brings the vehicle to land.

In a further embodiment the processor 25 is further configured to detectif no command has been received from the single controller 5 within apredefined time period; in response to having not received a commandwithin the predefined time period the processor 25 will operate theaerial vehicle to perform a default action. In this embodiment eachvehicle will further comprise a clock (preferable provided in theprocessor 25); after a flight plan 23 a-d has been executed then theprocessor 25 initiates the clock to begin counting; the processor 25continuously compares the value on the clock with a predefined timethreshold value and if the value of the clock exceeds the predefinedtime threshold value then the processor 25 operates the aerial vehicleto perform a default action. If the vehicle receives a command 7 a-dbefore the clock reaches the predefined time threshold value, then theprocessor 25 stops the clock, executes the flight plan 23 a-d assignedin the memory 21 to that received command, and then resets the clock;thus if the processor 25 receives a command 7 a-d before the clockexceeds the predefined time threshold value then the clock will bestopped before it exceeds the predefined time threshold value,accordingly the processor 25 will operate the vehicle to perform adefault action only if the vehicle has not received a command before theclock reaches a value which exceeds the predefined time threshold value.Preferably during the execution of a flight plan 23 a-d the clock doesnot increment; most preferably as soon as the vehicle receives a commandthe processor 25 stops the clock, the flight plan 23 a-d associated withthe received command 7 a-d is executed, and only after the flight plan23 a-d has been executed does the processor 25 reset the clock andinitiate the clock to being counting from the reset value.

For example, the processor 25 may be configured to detect if no commandhas been received from the single controller 5 within a predefined timeperiod of 20 seconds; in this example the predefined time thresholdvalue is ‘20’; after a vehicle has completed a flight plan 23 a-d theprocessor 25 resets the clock to a value of ‘0’ for example, andinitiates the clock to being counting from the reset value; the clock inthis example increments a value of ‘1’ per second. The processor 25continuously compares the value of the clock with the predefined timethreshold value ‘20’; if the clock reaches a value of ‘20’ then theprocessor 25 detects that the vehicle 3 has not received any command 7a-d from the single controller 5 within the predefined time thresholdvalue and so the processor 25 will operate the aerial vehicle 3 toperform a default action. Typically, the default action would be thatthe processor 25 operates the vehicle to follow a default flight plan 23a-d which brings the vehicle 3 to land. The single controller 5 willbroadcast commands frequently; if the processor 25 has not received acommand within ‘20’ seconds it could mean that the aerial vehicle 3 isout of the range of the single controller 5, or that the processor 25has a fault; or that the single controller 5 has a fault; in all casesthe control of the flight of the aerial vehicle 3 is compromised andthus, for safety, the processor 25 will operate the vehicle 3 to land.

In the above-mentioned embodiments it is preferred that the flight plans23 a-d assigned/associated in the memories 21 of all of the unmannedaerial vehicles 3 to a respective command 7 a-d all have the same timeduration. This facilitates controlling the aerial vehicles 3 using acommand which is broadcast to all aerial vehicles 3 from a singlecontroller 5.

It should be understood that a flight plan 23 a-d may specify a flightpath which includes a portion wherein the vehicle hovers in a singleposition for a period of time so as to ensure that the flight path hasthe same duration as other flight paths of other flight plans which theother vehicles 3 in the system 1 are travelling/executing. For example,in response to the single controller 5 broadcasting a first command 7 a,a first vehicle 3 may be following a first flight plan 23 a-d whichrequires the vehicle to fly from a first position to a second positionwhich takes the first vehicle ‘25’ seconds, and a second vehicle 3 maybe following a second flight plan 23 a-d which requires the vehicle tofly from a third position to a fourth position which takes the secondvehicle ‘20’ seconds. In order to ensure that the first and secondflight plans have the same time duration the second flight plan 23 a-dwill include a five second period whereby the second vehicle will hoverat a single position (or the speed of the second vehicle will be slowedso that it takes the second vehicle 25 seconds to fly from the thirdposition to the fourth position) so that it takes 25 seconds for thesecond vehicle to complete the second flight plan 23 a-d.

In an embodiment the single controller 5 is further configured togenerate and send a localization signal that can be used to determinethe distance between the single controller 5 and each vehicle 3; in afurther embodiment the localization signal that can be used to determinethe position (e.g. the position of the vehicles with respect to oneanother, and/or the position of the vehicles with respect to the singlecontroller 5, and/or the position of the vehicles with respect to apredefined reference position) of each vehicle in the system 1.Importantly, in the most preferred embodiment the controller isconfigured to broadcast the localization signal, using the samehardware, and/or using the same frequency, and/or using the samechannel, over which it sends the commands 7 a-d. The localization signalcan be sent either consecutively to the command signals 7 a-d, or may besend simultaneously to the command signals, or the commands 7 a-d andthe localization signal may be contained in the same signal (e.g. a datastructure that contains the command 7 a-d and the information requiredfor localization). In this particular embodiment, each vehicle 3 willpreferably further comprise a directional antenna or an antenna arraywhich can receive the localization signal. Determining the distancebetween the single controller 5 and each vehicle 3 and/or determiningthe location of each vehicle in the system 1 can be achieved using knowntechniques in the art. For example, the vehicle and the controller mayhave synchronized clocks, the localization signal can contain a timeindicating when the localization signal is sent as timestamped by thesingle controller 5 before it is sent; when the vehicle receives thelocalization signal the timestamp on the localization signal is comparedto the time which the vehicle has on its clock, this allows the vehicleto determine the time of flight of the signal, thus allowing theprocessor 25 to determine the distance between the vehicle and thecontroller knowing that the signal travelled at the speed of light.Another way to determine distance is to use the signal power, to dothis, the strength of the localization signal as originally transmittedby the single controller 5 is known to the vehicle (e.g. stored invehicle memory or is part of the transmitted signal); by measuring thestrength of the localization signal received at the vehicle, and using aFree-space Path Loss model, the distance to the between the singlecontroller 5 and the vehicle can be estimated. In yet a further examplethe vehicle can determine its position by triangulation; the vehiclereceives localization signals from at least three transmitters belongingto the controller, and estimates the distance to each of the threetransmitters based on the received localization signals (e.g. based onthe strength of the receiving localization signals); knowing thelocations of these three transmitters (e.g. stored in vehicle memory orpart of the transmitted signal) the vehicle determine its location basedon the estimated distance it is from each of the three transmitters.

FIG. 3 is a block diagram illustrating an example of another type ofunmanned aerial vehicle 300 which could be used in the system 1 shown inFIG. 1. In this example, in at least some of the unmanned aerialvehicles there is further stored in the memory 21 a plurality of sets ofconditions 301 a-d for one or more payloads provided on said unmannedaerial vehicle 300, and wherein each set of conditions 301 a-d isassigned to respective flight plan 23 a-d stored in memory 21(or, inanother embodiment, each set of conditions 301 a-d assigned to arespective command 7 a-d stored in memory 21). In this embodiment theprocessor 25 is further configured to, retrieve from the memory 21 ofthat aerial vehicle 301 the set of conditions 301 a-d assigned to theflight plan 23 a-d which that vehicle is about to follow, and to operatethe one or more payloads on said unmanned aerial vehicle 300 so thatthey meet the conditions specified in the retrieved set of conditions301 a-d. For example, in response to the single controller 5 broadcastsa third command 7 c the processor 25 will retrieve from the memory 21the flight plan 23 c associated with the third command 7 c; theprocessor 25 will then check to ensure that the vehicle 300 can travelthe flight path specified in the retrieved flight plan 23 c withoutcolliding with an object and will also check to ensure that the vehicle301 has sufficient resources to travel the retrieved flight plan 23 c(for this example it is assumed that the processor 25 determines thatthere is no risk of collision with an object and that the vehicle hassufficient resources); the processor 25 will also retrieve from thememory 21 the set of conditions 301 c which are associated with theretrieved flight plan 23 c (or, in another embodiment, retrieve from thememory 21 the set of conditions 301 c which are associated, in thememory 21 with the retrieved third command 7 c). The processor 25 thenconfigures the payload(s) provided on the vehicle 3 so that they meetthe conditions specified in the retrieved set of conditions 301 c;configuring the payload(s) provided on the vehicle 3 so that they meetthe conditions specified in the retrieved set of conditions 301 c mayrequire the processor 25 to operate the payloads in a specific mannerduring the execution of the retrieved flight path 23 c.

The payloads provided on the vehicle may take any suitable form; forexample the vehicle may comprise, one or more light sources, and/or acamera, and/or a housing (which can store confetti for example) whichhas a door which can be selectively opened to release the storedconfetti, and/or an actuator. The sets of conditions 301 a-d may specifylight intensity/light intensities profile for the one or more lightsources provided on the vehicle; and/or orientation profile for a lightsource provided on the aerial vehicle; and/or color profile for a lightsource provided on the aerial vehicle ; and/or may specify if a cameraprovided on the aerial vehicle should record still images, or whetherthe camera should record video, or whether the camera should be turnedon or off, and/or may specify that the door of the housing should beopened; and/or a motion profile for an actuator provided on the aerialvehicle.

The conditions might be time-dependent; in other words the conditionsover time may be specified. For example, the light intensity can have anintensity profile that varies over time; and/or the motion profile foran actuator provided on the aerial vehicle over time.

The conditions may also be dependent on a predefined situation oroccurrence of a predefined event. For example, a condition may specify alight intensity for a situation when an object is within a predefineddistance of the vehicle. One particular example would be in a stageperformance application where a condition may specify a light intensityfor a light source (payload) provided on a vehicle, if anactor/performer is moving towards the vehicle (in this example themovement of the actor/performer towards the vehicle may be detectedusing suitable means such as cameras or sensors provided on thevehicle); in this case once it is detected that the actor/performer ismoving towards the vehicle the processor 25 adjusts the light intensityof the light source to the light intensity specified in the condition.In another example the condition could be an adaptation of the flightpath which the vehicle is currently executing in the case of aparticular situation or occurrence e.g. the adaptation of the flightpath should be implemented if it is detected that he actor/performer ismoving towards the vehicle so as to avoid the vehicle colliding with theactor/performer.

The set of conditions may further specify a particular point in time,and/or a position along the flight path of the retrieved flight plan 23a-d at which the payload(s) should have a particular condition. Forexample, a set of conditions 301 a-d may specify that at 20 secondsafter the vehicle has begun to travel the retrieve flight plan 23 a-dthat the light sources on the vehicle should have an intensity of 20Lux; in which case the processor 25 will configure the light sources tohave an intensity of 20 Lux only 20 seconds after the vehicle 3 hasbegun to travel the retrieved flight plan 23 a-d.

In a further embodiment of the present disclosure, in at least some ofthe unmanned aerial vehicles there is further stored in the memory 21 aplurality of sets of parameters for the vehicle; each set of parametersis assigned to respective flight plan 23 a-d stored in memory 21. Inthis embodiment the processor 25 is further configured to, retrieve fromthe memory 21 of that aerial vehicle 301 the set of parameters assignedto the flight plan 23 a-d which that vehicle is about to follow, and toadjust its own configuration according to the retrieved parameters. Forexample, each vehicle may have a controller which can control the flightof the vehicle to follow a flight plan which the vehicle is to execute;for example the flight plan may specific a target velocity for thevehicle; the controller in the vehicle will control the flight effectors(such as propellers, flaps, elevons, wings) (for example the controllerin the vehicle will control speed of rotation of the propellers on thevehicle) so that the vehicles velocity is brought to and maintained atsaid target velocity. Likewise the flight plan may specific a targetposition i.e. spatial coordinates (or a plurality of target positions(i.e. spatial coordinates), for a respective plurality of timeinstances) for the vehicle to occupy; the controller in the vehicle willcontrol the flight effectors (e.g. controls the speed of rotation of thepropellers, and/or the direction of rotation of the propellers, and/orand the tilt of the angular propellers on the vehicle) so that thevehicle is moved to and is maintained at said target position. Likewisethe flight plan may specific a target velocity for the vehicle overtime; the controller in the vehicle will control the flight effectors(e.g. controls the speed of rotation of the propellers, and/or thedirection of rotation of the propellers, and/or and the tilt of theangular propellers on the vehicle) so that the vehicle is moved at saidtarget velocity specified in the flight plan. Likewise the flight planmay specific a target acceleration for the vehicle over time; thecontroller in the vehicle will control the flight effectors (e.g.controls the speed of rotation of the propellers, and/or the directionof rotation of the propellers, and/or and the tilt of the angularpropellers on the vehicle) so that the vehicle is moved at said targetacceleration specified in the flight plan. Likewise the flight plan mayspecific a target yaw for the vehicle over time; the controller in thevehicle will control the flight effectors (e.g. controls the speed ofrotation of the propellers, and/or the direction of rotation of thepropellers, and/or and the tilt of the angular propellers on thevehicle) so that the vehicle is moved to said target yaw specified inthe flight plan.

The controller in the flight vehicle may be configured to implement anysuitable control law to achieve such control (i.e. to maintain thevehicle flight at the target speed, and/or target position, and/ortarget acceleration, and/or target yaw, specified in the flight plan);for example, the controller may be configured to implement PID control.Parameters (such as the ‘gains’ of the controller) of the control law(e.g. the ‘gains’ of the PID control law) may be dependent on the flightplan which is to be executed; for example the a first flight plan 23 amay have a first set of PID control parameters (e.g. a first set ofgains) associated with it in the memory 21 and a second flight plan 23 bmay have a second set of PID control parameters (e.g. a second set ofgains) associated with it in the memory 21 etc.; if the vehicle is toexecute the second flight plan 23 b the second set of PID controlparameters (e.g. the second set of gains) are retrieved from the memory21 and the controller uses these second set of PID control parameterswhen implementing PID control (e.g. the controller uses the second setof gains when implementing the PID control law); if the vehicle is toexecute the first flight plan 23 a the first set of PID controlparameters (e.g. the first set of gains) are retrieved from the memory21 and the controller uses these first set of PID control parameterswhen implementing PID control (e.g. the controller uses the first set ofgains when implementing the PID control law). Having different controlparameters associated in the memory 21 with the different flight plansallows to take into account local conditions such as poor GPS reception,artistic effects, large errors in the vehicle onboard position estimate.

FIG. 4 is a block diagram illustrating and example of another type ofunmanned aerial vehicle 30 which could be used in the system 1 shown inFIG. 1. Each unmanned aerial vehicle 30 comprises a memory 21 whichstores a plurality of flight plan sets 33 a-f, each flight plan set 33a-f having predefined flight plans 23 a 1-a 4, 23 b 1-b 4, 23 c 1-c 4,23 d 1-d 4, 23 e 1-e 4, 23 f 1-f 4, assigned to a respective command 7a-d. The predefined flight plans 23 a 1-a 4, 23 b 1-b 4, 23 c 1-c 4, 23d 1-d 4, 23 e 1-e 4, 23 f 1-f 4 differ between the sets 33 a-f. In thisembodiment all of the plurality of unmanned aerial vehicles 30 in thesystem will have the same plurality of flight plan sets 33 a-f. Also,the number of flight plan sets 33 a-d is equal to, or greater than, thenumber of unmanned aerial vehicles 30 in the system 1.

In this embodiment the single controller 5 is configured such that itcan send a command, which is addressed to a single unmanned aerialvehicle 30, which identifies one of the sets of flight plan 33 a-f whichthat single unmanned aerial vehicle 30 is to use in operation. Forexample, each unmanned aerial vehicle 30 will have a vehicle ID which isunique to the vehicle ID's of all the other unmanned aerial vehicles 30in the system 1; before the plurality of unmanned aerial vehicles 3 areflown the single controller 5 will broadcast to all of the unmannedaerial vehicles 3 a command which comprises a list of the vehicle ID'sand a set of flight paths 33 a-f associated with each respective vehicleID listed, which that respective single unmanned aerial vehicle 30having that respective vehicle ID is to use in operation; upon receivingthe broadcasted list, the processor 25 of each unmanned aerial vehicle30 scans the list to locate its vehicle ID and then retrieves from itsrespective memory 21, the set of flight plans 33 a-f which is associatedin the list with its vehicle ID. In another example, before theplurality of unmanned aerial vehicles 3 are flown the single controller5 will send consecutive individual commands to each of the respectiveunmanned aerial vehicle 30 in the system 1 indicating which set offlight paths 33 a-f that vehicle 30 should use; for example the singlecontroller 5 will send a first command to a first vehicle 30 indicatingthat that first vehicle should use the set of flight plans 33 c, willsend a second command to a second vehicle 30 indicating that that secondvehicle should use the set of flight plans 33 b etc. . . Preferably eachvehicle 30 will use a different set of flight plans 33 a-f so as toprevent the vehicles from colliding during flight. In one embodiment thenumber of sets of flight plans 33 a-f is preferably equal to, or greaterthan, the number of vehicles 30 in the system 1; for example, if thereare four vehicles 30 in the system then the single controller 5 mayinstruct a first vehicle to use a first set of flight plans 33 a, asecond vehicle to use a second set of flight plans 33 b, third vehicleto use a third set of flight paths 33 c, and the fourth vehicle to use afourth set of flight plans 33 d. It should be understood that whilepreferably the number of sets of flight plans 33 a-f is preferably equalto, or greater than, the number of vehicles 30 in the system 1, it isnot necessary that all of the vehicles 30 in the system each all storeall of the sets of flight plans 33 a-f in their respective memories; forexample, there may be a total of ‘30’ vehicles in the system and ‘30’sets flight plans 33 a-f provided; however ‘15’ of the vehicles 30 mayhave ‘15’ different sets of flight plans stored in their respectivememories 21, while the other ‘15’ vehicles 30 may have the other ‘15’different sets of flight plans stored in their respective memories 21;thus in this example the vehicles 30 in the system 1 each have only someof the available flight plans 33 a-f stored in their respectivememories.

FIG. 5 is a block diagram illustrating a further embodiment of thepresent disclosure. In this embodiment the system 1 further comprises amaster controller 50 which can communicate with the single controller 5.The master controller 50 can send commands to the single controller 5which cause the single controller 5 to broadcast a selected command 7a-d to the plurality of unmanned aerial vehicles 3,30,300. For example,the master controller 50 can send a command to the single controller 5which initiates the single controller 5 to send a command 7 c to theaerial vehicles 3.

In a preferred embodiment the master controller 50 is a controller whichis configured to control the motion of objects on a stage (e.g. thestage of a theatre), and the commands which the master controller 50sends to the single controller 5 depend on the position which theobjects occupy on the stage. For example, the master controller 50 maycontrol the movement of a partition-wall on the stage; the mastercontroller 50 may detect that the partition-wall is failing to move; toavoid the aerial vehicles 3 from colliding with the partition-wall themaster controller 50 may instruct the single controller 5 to send acommand 7 d to the vehicle 3 which will it knows is assigned torespective flight paths each of which cause the respective vehicles3,30,300 to land.

In another embodiment the user may control the single controller i.e.the single controller may be slaved to a user. The user can select whichcommand(s) the single controller should broadcast, and then initiate thesingle controller to send the selected command. The user can operate thesingle controller to send commands which, for example, cause the aerialvehicles to start, stop, pause, to perform a default action, or to shutdown the vehicle(s).

In the above-mentioned embodiments, the contents of the memory 21 ofeach unmanned aerial vehicle 3,30,300 will be pre-programmed prior tooperating the system 1. In other words the flight plans 23 a-d arepredefined and are associated with respective commands 7 a-d prior tooperating the system 1. The sets of conditions 301 a-d are alsopredefined and are also pre-programmed in the memories and areassociated with respective flight plans 23 a-d prior to operating thesystem 1.

For example, if the system 1 has three aerial vehicles 3 then, in thememory of the first aerial vehicle a first command 7 a will be assignedto a first flight path 23 a-d, and in the memory of the second aerialvehicle the same first command 7 a will be assigned to a second flightpath 23 a-d which is different to the first flight path 23 a-d, and inthe memory of the third aerial vehicle the same first command 7 a willbe assigned to a third flight path 23 a-d which is different to both thefirst and second flight path 23 a-d.

For any one command 7 a-d the flight plan 23 a-d in the memory 21 ofeach aerial vehicle 3 which is associated with that command 7 a-d mustallow the vehicles to fly without collision. Thus, as mentioned for eachcommand 7 a-d the flight path assigned to that command 7 a-d will differbetween vehicles 3,30,300. For example, the flight plan 23 a associatedwith a first command 7 a in the memory 21 of a first vehicle 3 and theflight plan 23 a associated with the first command 7 a in the memory 21of a second vehicle 3 will be different flight plans, so that the firstand second vehicles will not be at the same position at the same pointin time, thereby avoiding collision. Specifically, the spatialcoordinates for corresponding discrete times specified in the flightplans 23 a-d associated with the same command 7 a in the memories 21 ofthe different vehicles 3,30,300, will be different between vehicles3,30,300 in the system 1. This ensures that no two vehicles will belocated at the same spatial coordinates as the same point in time. Thus,the vehicles of the system 1 can execute their respective flight plans23 a-d in response to a broadcasted command 7 a-d, without the risk ofcollision with another vehicle. In the most preferred embodiment thespatial coordinates for corresponding discrete times specified in theflight plans 23 a-d associated with the same command 7 a in the memories21 of the different vehicles 3,30,300, and also the spatial coordinatesfor corresponding discrete times specified in the flight paths ofdefault flight plans of the different vehicles 3,30,300, will bedifferent between vehicles 3,30,300 in the system 1.

Any of the above-mentioned systems can be used to perform a method ofcontrolling a plurality of unmanned aerial vehicles according to anembodiment of the present disclosure. The method will comprise the stepsof, using the single controller 5 to broadcast a command 7 a-d to all ofthe plurality of unmanned aerial vehicles 3,30,300 so that each of theplurality of unmanned aerial vehicles 3,30,300 receive the same command7 a-d; and at each of the unmanned aerial vehicles 3,30,300, receivingat the processor 25 of that unmanned aerial vehicle 3,30,300 the command7 a-d which has been broadcasted by the single controller 5 to saidplurality of unmanned aerial vehicles 3,30,300, and retrieving from amemory 21 of that aerial vehicle 3,30,300, the flight plan 23 a-d whichis assigned in the memory 21 to that command 7 a-d which has beenreceived at the processor 25, and operating the aerial vehicle 3,30,300to follow the retrieved flight plans 23 a-d.

Various modifications and variations to the described embodiments of thedisclosure will be apparent to those skilled in the art withoutdeparting from the scope of the disclosure as defined in the appendedclaims. Although the disclosure has been described in connection withspecific preferred embodiments, it should be understood that thedisclosure as claimed should not be unduly limited to such specificembodiment. For example, it should be noted that in another embodimentthe commands 7 a-d which are broadcast by the single controller 5 arerepeated through an array of repeaters or the vehicles repeat thereceived command.

In yet a further embodiment the broadcast command 7 a-d furthercomprises a specification of the speed at which the vehicle 3 shouldtravel the flight path of the flight plan 23 a-d associated in thememory 21 of the vehicle with the broadcasted command 7 a-d; in thisembodiment the flight plans 23 a-d stored in the memory of the vehicledo not need to contain velocity/speed data.

In yet a further embodiment the broadcast command 7 a-d may furthercomprise a modifying parameter (such as a gain) which is applied to acomponent specified in the flight plan 23 a-b associated in the memory21 of the vehicle with the broadcasted command. For example the in anembodiment the broadcast command 7 a-d further comprise a modifyingparameter (which in this example is a gain) for a speed parameter whichis defined in the flight plan 23 a-b associated in the memory 21 of thevehicle with the broadcasted command 7 a-d; for example the singlecontroller 5 may broadcast a command 7 a which further comprises amodifying parameter in the form of a gain of ‘2’ which is to be appliedto a speed parameter specified in the flight plan 23 a which isassociated in the memory 21 of the vehicle with the broadcasted command7 a; in this example instead of travelling the flight path specified inthe flight plan 23 a at the speed which is specified in the flight plan23 a, the vehicle will travel the flight path specified in the flightplan 23 a at twice the speed (i.e. a gain of a factor or ‘2’) which isspecified in the flight plan 23 a. In another example, the in anembodiment the broadcast command 7 a-d further comprise a modifyingparameter (which in this example is a gain) for a time parameter whichis defined in the flight plan 23 a-b associated in the memory 21 of thevehicle with the broadcasted command (the time parameter may be forexample the maximum time in which the vehicle should take to travel theflight path specified in the flight plan 23 a-b); for example the singlecontroller 5 may broadcast a command 7 a which further comprises amodifying parameter in the form of a gain of ‘2’ which is to be appliedto a time parameter specified in the flight plan 23 a which isassociated in the memory 21 of the vehicle with the broadcasted command7 a. Say, for example, the time parameter in this example is a time 10seconds, which is specified in the flight plan 23 a, which the time thevehicle should take to travel the flight path specified in the flightplan 23 a; in other words in this example the vehicle should travel theflight path specified in the flight plan 23 a in a time of 10 seconds.In this example instead of travelling the flight path specified in theflight plan 23 a in a time of 10 second, as is specified in the flightplan 23 a, the vehicle will travel the flight path specified in theflight plan 23 a in a time of 20 seconds i.e. twice the maximum timespecified in the flight plan 23 a, corresponding to the gain of a factorof ‘2’ which was provided in the sent command 7 a. In this example inorder to travel the flight path specified in the flight plan 23 a in atime of 20 seconds instead of 10 seconds the vehicle may travel at halfthe speed which is specified in the flight plan 23 a.

In yet a further embodiment the broadcast command 7 a-d furthercomprises information about the conditions for the payload; in thisembodiment the conditions for the payloads do not need to be stored inthe memory 21 of the vehicle 3. In yet a further embodiment the vehicles3 in the system have addresses which are used to identify the vehicles;and the broadcast command 7 a-d further comprises one or more addressescorresponding to address of those vehicles in the system whom thecommand 7 a-d is distained, and only those vehicles which have anaddress corresponding to an address in the broadcast command 7 a-d willprocess the command 7 a-d; in this embodiment the controller 5 canbroadcast commands 7 a-d to a subset of the vehicle in the system 1.

In yet a further embodiment the broadcast command 7 a-d furthercomprises a modifier parameter for the conditions for a payload whichare stored in the memory 21. For example, a condition stored in thememory 21 may specify a light intensity of 20 Lux for a light sourcewhich is provided on the vehicle; and the broadcasted command mayfurther comprise a modifier parameter for that light intensity which isstored in the memory 21; for example the broadcasted command may furthercomprise a modifier parameter in the form of a gain value, for example,which is to be applied to the light intensity condition which is storedin memory. If for example the broadcasted command further comprises again of ‘2’, then instead of operating the light source to emit light at20 Lux, the gain of ‘2’ is applied so that the light source is operatedto emit a light at 40 Lux. In another example, the condition stored inthe memory may be a light intensity profile for a light source onboardthe vehicle: the broadcasted command may further comprise a modifierparameter such as a gain which is to be applied to that stored lightintensity profile; for example the broadcasted command may furthercomprise a gain ‘0.5’ which will be applied to the stored lightintensity profile, in which case the light source on the vehicle will beoperated to emit light according to the light intensity provide but withthe light intensity being half that which is specified in the storedlight intensity profile.

In an embodiment, each of the vehicles 3 begin execution of theirrespective flight plans, without delay, as soon as the broadcastedcommand is received by the processor 25 of that aerial vehicle 3 (forexample the broadcasted command could be “START FLIGHT PLAN #5”). In afurther embodiment the command 7 a-d which is broadcasted by thecontroller 5 can also contain additional information such as a delay,which indicates when the vehicle should begin to execute the flight plan23 a-d associated in the memory with the command 7 a-d. Preferably inthis embodiment the vehicle comprises a clock which can be used to countthe time elapsed since receipt of the broadcasted command. Preferablythe processor 25 is configured to read (and preferably store) the timeon the clock at which the broadcasted command was received at thevehicle, and to compare the current time on the clock of the vehiclewith the time which was on the clock when the command was received (saidtime which was on the clock when the command was received may be storedin the memory of the vehicle). Alternatively, the clock may beconfigured to reset its time count to zero and start counting as soon asthe broadcasted command has been received at the vehicle; preferably theclock is configured to reset its time count to zero and start countingas soon as the broadcasted command has been received by the processor 25of the vehicle. Most preferably the processor 25 of each respectivevehicle comprises a respective clock.

For example, the broadcasted command 7 a-d may specify that theprocessor 25 should operate the vehicle to execute the flight plan 23a-d associated in the memory 21 with the command 7 a-d, only ‘2.325’seconds after receiving the command 7 a-d (for example the broadcastedcommand could be “START FLIGHT PLAN #6 IN 2.325 SECONDS”); in this casethe clock of each respective vehicle 3 is configured to begin to counttime, as soon as the broadcasted command is received by the processor25. Importantly, in this example the execution of the flight plan 23 a-dassociated in their respective memories 21 with the command received bythe processor 25, is only started by the receptive processor 25 of eachrespective vehicle 3, only when the clock of that respective vehicle 3has counted 2.325 seconds.

In an embodiment, the clock of each respective vehicle 3 may besynchronized to a reference clock (such as an external reference clock).The reference clock could be provided by the single controller (forexample, by including time information in the broadcasted commands suchthat the vehicle's clock can be synchronized to that time information),by a separate signal sent by the single controller (for example, aperiodic broadcast signal indicating the current time), or by anexternal entity (for example by a Global Navigation Satellite System, alongwave time signal, or a separate timing signal generated by thecontroller). The synchronization of the respective clocks of all thevehicles with the reference clock may be done once only (in which casethe clocks could slowly drift apart); alternatively the synchronizationof the respective clocks of each respective vehicle with the referenceclock may be done repeatedly or continuously (in which case clock driftcan be eliminated).

In a further embodiment the command 7 a-d which is broadcasted by thecontroller 5 can also contain additional information such as a starttime, which indicates when the vehicle should begin to execute theflight plan 23 a-d associated in the memory with the command 7 a-d.

For example the broadcasted command 7 a-d may specify that the processor25 should operate the vehicle to execute the flight plan 23 a-dassociated in the memory with the command 7 a-d, at a specific time;preferably in this example the vehicle and the single controller havesynchronized clocks and the processor 25 operates the vehicle to startthe execution of the flight plan 23 a-d associated in the memory 21 withthe command 7 a-d, only when the clock of that vehicle has a time, equalto the time specified in the received command 7 a-d. Said specific timeprovided in the command may be expressed with reference to a given clock(for example, using POSIX time, universal time, or the time at which thecontrol station was started).

For example, a command broadcasted by the single controller may be“START FLIGHT PLAN #4 AT 1516292785.232 SECONDS”. For each vehicle 3,the processor 25 reads the specific time mentioned in the broadcastedcommand, and compares said specific time with the time on its clock.Importantly, the execution of flight plan 23 a-d associated in therespective memories 21 with the command, is only started by thereceptive processor 25 of each respective vehicle 3, only when the clockof that respective vehicle 3 has a time which is equal to the specifictime mentioned in the broadcasted command.

In one embodiment, instead of having a clock, the processor 25 of eachvehicle 3 has access to an external clock signal that provides time tothe processor 25. In this case the execution of the flight plan 23 a-dassociated in their respective memories 21 with the command, is onlystarted by the receptive processor 25 of each respective vehicle 3, onlywhen the external clock signal indicates a time which is equal to thespecific time mentioned in the received command. Advantageously in thisembodiment the vehicle is not required to have clock hardware.

In a further embodiment the processor 25 may be configured to determineif a start time specified in a broadcasted command which has beenreceived, is within a predefined range. For example, the predefinedrange could be “Between time 1516292785.232 seconds and time1516292785.432 seconds”. For example, a predefined range may bedetermined by the processor 25; the predefined range may be dynamicallydetermined by the processor 25 (i.e. the predefined range may differfrom one instant to the next). For example, a predefined time rangecould be “between the current clock time and the current clock time plus‘5’ seconds”. In this case, the processor 25 has access to a clock thatmeasures time (such as a clock provided in the processor of thevehicle). Preferably, the clock is synchronized to a reference time(such as a system-wide time). Preferably, the processor of a vehiclereads the time on the clock at the beginning and at the end of everyflight plan and records the times at the beginning and at the end ofevery flight plan. For example, a predefined time range may becalculated based on the end time of the previous flight plan (forexample, if the previous flight plan ended at a time “30 seconds”, theprocessor 25 may retrieve from memory a predefined threshold, forexample “5.5” seconds, and calculate the predefined range as “betweentime 30.0 seconds and time 35.5 seconds” for example—in this example theprocessor 25 will only execute the flight plan which is associated inthe memory of the vehicle with the command which it received, only ifthe start time specified in the received command is between times 30.0seconds and time 35.5 seconds. In one embodiment the processor 25 isfurther configured so that, in response to determining that the starttime which is specified in a broadcasted command is below the predefinedrange, the processor 25 will operate the aerial vehicle to perform adefault action (such as landing). Most preferably the processor 25 isfurther configured so that, in response to determining that the starttime which is specified in a broadcasted command is outside of thepredefined range, the processor 25 will operate the aerial vehicle toperform a default action. For example, in one embodiment the processor25 is further configured so that, in response to determining that thestart time which is specified in a broadcasted command is above thepredefined range, the processor 25 will operate the aerial vehicle toperform a default action (such as landing).

In a further embodiment the processor 25 may be configured to determineif a delay specified in a broadcasted command which has been received,is within a predefined range. For example, a predefined range can be ofthe form “Between 0 seconds and 10 seconds”. It should be understoodthat the predefined range will preferably be stored in the memory of thevehicle (or a respective predefined range will preferably be stored inthe respective memories of each vehicles). Most preferably the processor25 is further configured so that, in response to determining that thedelay which is specified in a broadcasted command is outside of thepredefined range, the processor 25 will operate the aerial vehicle toperform a default action.

Furthermore, it should be understood that, in each of the embodimentsdescribed in this application, the memory of a vehicle may be apersistent memory, or volatile memory.

FIG. 6 is a block diagram illustrating an example of an unmanned aerialvehicle 600 according to a further aspect of the present disclosure. Theaerial vehicle 600 can be used in any of the systems of the presentdisclosure. The aerial vehicle 600 comprises, a memory 21 which storesat least one predefined flight plan each of which is assigned to arespective command; a control unit 65 which is configured such that itcan control the flight of the vehicle so that the flight of the vehiclefollows a flight plan; and a processor 25 which is configured such thatit can (i) receive a command (for example a command which has beenbroadcasted by the single controller 5), (ii) retrieve from its memory21 the flight plan which is assigned in the memory to that command,(iii) send the retrieved flight plan to the control unit 65; and whereinthe control unit is configured such that it controls the flight of thevehicle so that the flight of the vehicle follows said flight plan whichit receives from said processor 25.

Said aerial vehicle 600 could be used in the system of FIG. 1. In otherwords one or more of said aerial vehicles in any of the systemembodiments described above could have the features of said aerialvehicle 600.

It is understood that the processor 25 of said aerial vehicle 600 maycomprise any one or more of the features of the processor 25 of any ofthe embodiments described in this application. Some examples include,but are not limited to, the follow:

The processor 25 of the aerial vehicle 600 may be further configured tocarry out a check to determine if the aerial vehicle can follow theretrieved flight plan without collision with an object, and if theprocessor determines that the aerial vehicle cannot follow the retrievedflight plan without collision then the processor will perform a defaultaction, such as sending a default flight plan to the control unit 65.

The processor 25 of the aerial vehicle 600 may be further configured tocarry out a check to determine if the aerial vehicle 600 has sufficientresources to follow the retrieved flight plan, and if the processordetermines that the aerial vehicle has insufficient resources to followthe retrieved flight plan then the processor will perform a defaultaction.

The processor 25 of the aerial vehicle 600 may be further configured todetect if no command has been received within a predefined time period,and in response to having not received a command within the predefinedtime period the processor will perform a default action.

The processor 25 of the aerial vehicle 600 may be further configured todetermine if a start time or delay time specified in a command which hasbeen received at the vehicle, is within a predefined range; and theprocessor is further configured to perform a default action if it isdetermined that the start time or delay time specified in a receivedcommand is outside of said predefined range.

The processor 25 of the aerial vehicle 600 may be further configured todetermine whether a command that it has been received is valid based onthe last flight plan which the vehicle executed. Specifically, theprocessor 25 may be configured to compared starting conditions which arespecified in the retrieved flight plan with end conditions specified inthe flight plan which the aerial vehicle last executed; the processor 25then sends the retrieved flight plan to the control unit 65 only if thestarting conditions specified in the retrieved flight plan are equal tothe end conditions specified in the flight plan which the aerial vehiclelast executed, otherwise the processor 25 performs a default action.

Likewise, the memory 21 of said aerial vehicle 600 may comprise any oneor more of the features of the memory 21 of any of the embodimentsdescribed in this application. For example, the memory 21 may have anyone or more of the features of the memory 21 of the vehicles in theembodiments shown in FIG. 2, FIG. 3, and/or FIG. 4. For example, thememory 21 of said aerial vehicle 600 may store flight plans 23 a-d,conditions 301 a-d, and/or other parameters.

In one example the memory 21 of the aerial vehicle 600 further stores aplurality of sets of parameters for the aerial vehicle 600, each set ofparameters is assigned to respective flight plan stored in memory 21. Inthis example, the processor 25 may be configured to retrieve from thememory 21 the flight plan which is assigned in the memory to the commandwhich the vehicle has received, and also retrieve from the memory 21 theset of parameters assigned to said flight plan. Preferably the processor25 adjusts its own configuration (or the control unit configuration)according to the retrieved parameters. For example, the processor 25 mayadjust parameters of the control law (e.g. PID control law) which thecontrol unit 65 is designed to execute to control the flight of theaerial vehicle; such as, for example, the proportional gain, integralgain, derivative gain of the control law which the control unit 65 isdesigned to execute.

The aerial vehicle 600 further comprises a receiver 62, which canreceive a command (for example a command that has been broadcasted bythe single controller 5 as described in other embodiments), and can passthe received command to the processor 25 for processing. The receiver 62is preferably operably connected to the processor 25 so that thereceiver can pass received broadcasted commands to the processor 25 forprocessing. It should be understood that the receiver 62 of the aerialvehicle 600 may have any one or more of the features of the receiver ofany of the embodiments described in this application.

Preferably the aerial vehicle 600 further comprises a clock 6l. Mostpreferably the processor 25 further comprises a clock which can measuretime. The clock 61 of the vehicle is preferably operably connected tothe processor 25, so that the processor 25 can read the time measurementon the clock or so that the clock can send its time measurement to theprocessor 25 should be understood that the clock 61 of the aerialvehicle 600 may have any one or more of the features of the clock of anyof the embodiments described in this application (for example, the clockof the aerial vehicle 600 may be synchronized to a reference clock).

The aerial vehicle 600 comprises at least one sensor 63 which canmeasure physical quantities and generate and subsequently output one ormore sensors signals that contain measurement data. The at least onesensor may be structured and arranged to (a) sense the state of asubsystem or component and to output sensor signals containingmeasurement data representative of a state of subsystem or a componentwhich has been sensed (e.g. output sensor signals containing measurementdata representative of the state of an actuator such as linear positionor rotational position, and/or output sensor signals containingmeasurement data representative of the state of power source such astemperature or state of charge), or (b) sense the motion of one or moresubsystems and to output sensor signals containing measurement datarepresentative of the motion of one or more subsystems (e.g. rotationalspeed of an actuator), or (c) sense the motion of the aerial vehicle andto output sensor signals containing measurement data representative ofthe motion of the aerial vehicle.

In an embodiment the aerial vehicle 600 may comprise one or moreinteroceptive sensors which are configured to sense an internal quantity(such as temperature) of one or more components (such as actuators) inthe aerial vehicle 600. For example, the aerial vehicle 600 maycomprise, a heat sensor which is configured to sense the temperature ofa motor and to output sensor signals containing measurement datarepresentative of the temperature of the motor and/or a current sensorconfigured to sense the electric current in a wire and to output sensorsignals containing measurement data representative of the current.

The aerial vehicle 600 may further comprise one or more exteroceptivesensors. Preferably the one or more exteroceptive sensors are configuredto sense a state (i.e. a relative position, relative orientation, orrelative velocity) of a system, with respect to an external referenceframe. For example, the aerial vehicle 600 may further comprise one ormore exteroceptive sensors which are configured to sense a relativeposition and/or relative orientation, and/or relative velocity of theaerial vehicle 600 with respect to an external reference frame and tooutput sensor signals containing measurement data representative of therelative position and/or relative orientation, and/or relative velocityof the aerial vehicle 600. It should be understood that the externalreference frame may be a predefined reference frame.

In a further embodiment the aerial vehicle 600 may comprise a visionsensor (e.g. a camera) which is configured to sense the distance fromthe aerial vehicle 600 to an obstacle and to output sensor signalscontaining measurement data representative of the distance from theaerial vehicle 600 to the obstacle; and/or a magnetometer sensor whichis configured to sense the direction of the Magnetic North Pole and tooutput sensor signals containing measurement data representative of thedirection of the Magnetic North Pole. Exteroceptive sensors can beparticularly useful for autonomous flight of the aerial vehicle 600.

In another embodiment the aerial vehicle 600 may comprise one or moremicro-sensors, such as micro-electro-mechanical systems (MEMS), and/orone or more piezoelectric systems, which are used as sensors. Forexample, the aerial vehicle 600 may comprise any one or more of: MEMSgyroscopes, MEMS accelerometers, piezoelectric gyroscopes, and/orpiezoelectric accelerometers, all of which can be usefully employed forthe control of the flight of the aerial vehicle 600. In some embodimentsthe use of micro-sensors allows using one or more inertial measurementunits (IMUs), which each combine multiple gyroscopes and accelerometersor use multiple-axis gyroscopes and accelerometers.

The aerial vehicle 600 may further comprise an estimation unit 64. Theestimation unit 64 is preferably configured to implement stateestimation algorithms (based on the sensors signals output by any one ormore of said above-mentioned sensors) to estimate the state of theaerial vehicle 600. In such as case the one or more sensors areconfigured to output their sensor signals to the estimation unit. Thealgorithms used by the estimation unit are estimation algorithms thatare well-known in the art; examples of such methods include Kalmanfiltering; extended Kalman filtering; particle filtering; unscentedKalman filtering; and complementary filtering. In some embodiments astate estimate includes an estimate of the aerial vehicle's rotation andan estimate of the vehicle's angular velocity. The estimation unit maybe configured to estimate both a rotational state (e.g. attitude,angular velocity) and a translational state (e.g. position, velocity) ofthe vehicle. Those estimates can be usefully employed for the control ofthe flight of the aerial vehicle. For example, an estimate of therotational state of the aerial vehicle can be used by an attitudecontroller (implemented for example in the control unit 65) to stabilizeand control the attitude of the vehicle.

As mentioned the aerial vehicle 600 further comprise a control unit 65which is configured such that it can control the flight of the vehicleso that the flight of the vehicle follows a flight plan. The controlunit receives the retrieved flight plan from the processor 25 and thestate estimate from the estimation unit 64 and operates one or moreactuators 68 (which are typically configured to actuate flighteffectors) of the aerial vehicle 600 to control the flight of the aerialvehicle so that the aerial vehicle 600 follows the retrieved flightplan. The control unit is configured to implement one or more knowncontrol laws, in order to control the flight of the vehicle so that itexecutes the retrieved flight plan. Examples of such control lawsinclude any one or more of, PID control; model predictive control;sliding mode control; full state feedback; and backstepping control.Depending on the control law, the control unit may use a vehicle stateestimate which has been determined by the estimation unit, to controlthe aerial vehicle 600. For example, the estimation unit may beconfigured to estimate the aerial vehicle's attitude and to estimate theaerial vehicle's angular velocity; the control unit may be configured toreceive said estimate of the aerial vehicle's attitude and said estimateof the aerial vehicle's angular velocity from the estimate unit and touse said estimates to maintain the aerial vehicle 600 at a predefinedattitude, e.g. in an attitude controller. In another example the controlunit is configured to compute different sets of control signals fordifferent sets of actuators (e.g. a rotary motor and a servo motor), andto send those computed control signal to each respective set ofactuators.

In another example, the aerial vehicle 600 may further comprise one ormore payloads 69. The aerial vehicle 600 may further comprise a payloadcontrol unit 66 which can configure one or more of said payloads to meetcertain conditions.

Preferably in this example there is further stored in the memory 21 ofthe aerial vehicle 600, a set of conditions for said one or morepayloads 69. Most preferably the set of conditions is assigned to aflight plan stored in memory 21. In this case the processor 25 ispreferably further configured to, retrieve from the memory 21 the set ofconditions assigned to the flight plan which is assigned in the memoryto that command which has been received, and to send the retrieved setof conditions to the payload control unit 66; the payload control unitthen configures the one or more payloads to meet the conditionsspecified in the retrieved set of conditions. The set of conditions maycomprise any one or more selected from the group comprising, lightintensity for a light source provided on the aerial vehicle; anorientation for a light source provided on the aerial vehicle; a colorfor a light source provided on the aerial vehicle; whether a cameraprovided on the aerial vehicle should record still images, or whetherthe camera should record video, or whether the camera should be turnedoff; and/or a motion profile for an actuator provided on the aerialvehicle. It is further understood that the conditions stored in memory21 may have any one or more of the features of the conditions describedin any of the embodiments described above.

The one or more payloads provided on the vehicle may take any suitableform; for example the one or more payloads may comprise, one or morelight sources, and/or a camera, and/or a housing (which can storeconfetti for example) which has a door which can be selectively openedto release the stored confetti, and/or an actuator. The sets ofconditions may specify light intensity/light intensities profile for theone or more light sources provided on the vehicle; and/or orientationprofile for a light source provided on the aerial vehicle; and/or colorprofile for a light source provided on the aerial vehicle ; and/or mayspecify if a camera provided on the aerial vehicle should record stillimages, or whether the camera should record video, or whether the camerashould be turned on or off, and/or may specify that the door of thehousing should be opened; and/or a motion profile for an actuatorprovided on the aerial vehicle.

The aerial vehicle 600 may comprises one or more power sources 67. Theone or more power source(s) may take any suitable configuration.Examples for suitable power sources 67 include batteries, accumulators,internal combustion engines, turbines, and power capacitors. Furtherexamples include other electric and nonelectric power sources. The powersource(s) is configured to supply power to one or more of the sensor(s),actuator(s), processor 25, and other components of the aerial vehicle600 which require power.

It should be understood that in the most preferable embodiment, any oneor more of said clock 61, the receiver 62, the sensor 63, the estimationunit 64, the payload control unit 66, and/or the control unit 65, may beintegral to the processor 25. In another embodiment any one or more ofsaid clock 61, the receiver 62, the sensor 63, the estimation unit 64,the payload control unit 66, and/or the control unit 65 are operablyconnected to the processor 25.

1. A system comprising, a plurality of unmanned aerial vehicles and asingle controller for controlling said plurality of unmanned aerialvehicles, wherein the single controller is configured such that it canbroadcast a command to all of the plurality of unmanned aerial vehiclesso that each of the plurality of unmanned aerial vehicles receive thesame command; wherein each of the unmanned aerial vehicles comprise amemory which stores at least one predefined flight plans each of whichis assigned to a respective command; and wherein each of the unmannedaerial vehicles comprises a processor which can: (i) receive a commandwhich has been broadcast by the single controller to said plurality ofunmanned aerial vehicles; (ii) retrieve from the memory of that aerialvehicle the flight plan which is assigned in the memory to that command;and (iii) operate the aerial vehicle to follow the retrieved flightplan.
 2. A system according to claim 1 wherein each of said predefinedflight plans comprise a respective flight path which specifies aplurality of spatial coordinates for an aerial vehicle to occupy,wherein each spatial coordinate is associated with a discrete time in atime period.
 3. A system according to claim 2 wherein the spatialcoordinates for corresponding discrete times specified in the flightplans assigned to the same command in the memories of the differentvehicles are different between vehicles, so that no two vehicles will belocated at the same spatial coordinates at the same point in time whenthe vehicles are operated to follow a retrieved flight plan in responseto receiving a broadcasted command.
 4. A system according to claim 1,wherein the single controller is configured to broadcast a predefinedseries of commands, wherein in each predefined series, for adjacentcommands in the predefined series the end conditions specified in theflight plan assigned in the memory to one of said commands are equal tostart conditions specified in the flight plan assigned in the memory tothe next command in said series.
 5. A system according to claim 1wherein the memory stores a plurality of predefined flight plans each ofwhich is assigned to a respective command.
 6. A system according toclaim 1 wherein the single controller is configured to broadcast atleast one command to said plurality of unmanned aerial vehicles, whereinsaid at least one command defines a choreography for the plurality ofunmanned vehicles based on the predefined flight plans stored in thememories of the plurality of unmanned vehicles.
 7. A system according toclaim 6, wherein the single controller is configured to broadcast,consecutively, a plurality of commands, wherein said plurality ofcommands define a choreography for the plurality of unmanned vehiclesbased on the predefined flight plans stored in the memories of theplurality of unmanned vehicles.
 8. A system according to claim 7 whereinthe single controller is configured to broadcast a next command beforethe plurality of unmanned vehicles have completed their respectiveflight plans assigned to the last command which the single controllerbroadcast.
 9. A system according to claim 1 wherein the processor isfurther configured to carry out a check to determine if the aerialvehicle can follow the retrieved flight plan without collision with anobject, and if the processor determines that the aerial vehicle cannotfollow the retrieved flight plan without collision then the processorwill operate the aerial vehicle to perform a default action.
 10. Asystem according to claim 1 wherein the processor is further configuredto carry out a check to determine if the aerial vehicle has sufficientresources to follow the retrieved flight plan, and if the processordetermines that the aerial vehicle has insufficient resources to followthe retrieved flight plan then the processor will operate the aerialvehicle to perform a default action.
 11. A system according to claim 1wherein the processor is further configured to detect if no command hasbeen retrieved within a predefined time period, and in response tohaving not received a command within the predefined time period theprocessor will operate the aerial vehicle to perform a default action.12. A system according to claim 9 wherein the default action comprisesfollowing a default flight plan.
 13. A system according to claim 12,wherein the default flight plan comprises a flight path which specifiesa plurality of spatial coordinates for an aerial vehicle to occupy,wherein each spatial coordinate is associated with a discrete time in atime period, and wherein the spatial coordinates specified in thedefault flight plans for corresponding discrete times differs betweenvehicles, and wherein the spatial coordinates specified in the defaultflight plans differ to the spatial coordinates for correspondingdiscrete times specified in said flight plans stored in the memories ofthe other vehicles in the system, so that no two vehicles will belocated at the same spatial coordinates at the same point in time whenexecuting their default flight plan or retrieved flight plan.
 14. Asystem according to claim 12 wherein the default flight plan comprisesthe landing of the unmanned aerial vehicle.
 15. A system according toclaim 13, wherein the spatial coordinates defining a start of thedefault flight plan are equal to the spatial coordinates defining astart of the retrieved flight plan, and the spatial coordinates definingan end of the default flight plan are equal to the spatial coordinatesdefining an end of the retrieved flight plan.
 16. A system according toto claim 1 wherein, for each respective command, the flight plansassigned in the memories of all the unmanned aerial vehicles to thatcommand, have same time duration.
 17. A system according to claim 16wherein a flight plan of at least one unmanned aerial vehicle includes aperiod wherein the unmanned vehicle hovers in a single position for aperiod of time so that said flight plan has the same time duration asthe flight plans followed by the other unmanned aerial vehicles.
 18. Asystem according to claim 1 wherein, in at least some of the unmannedaerial vehicles there is further stored in the memory of that unmannedaerial vehicle, a set of conditions for one or more payloads provided onsaid unmanned aerial vehicle, and wherein the set of conditions areassigned to a flight plan stored in memory; and wherein the processor isfurther configured to, retrieve from the memory the set of conditionsassigned to the flight plan which that vehicle is about to follow, andto operate the one or more payloads on said unmanned aerial vehicle sothat they meet the conditions specified in the retrieved set ofconditions.
 19. A system according to claim 18 wherein the set ofconditions may comprise any one or more selected from the groupcomprising, light intensity for a light source provided on the aerialvehicle; an orientation for a light source provided on the aerialvehicle; a color for a light source provided on the aerial vehicle;whether a camera provided on the aerial vehicle should record stillimages, or whether the camera should record video, or whether the camerashould be turned off; and/or a motion profile for an actuator providedon the aerial vehicle.
 20. A system according to claim 1 wherein each ofthe unmanned aerial vehicles comprise a memory which stores a pluralityof flight plan sets, each flight plan set comprising a plurality ofpredefined flight plans each of which is assigned to a respectivecommand; and wherein the single controller is further configured suchthat it can send a command, which is addressed to a single unmannedaerial vehicle, which identifies one of the set of flight plans whichthat single unmanned aerial vehicle is to use.
 21. A system according toclaim 20 wherein the plurality of unmanned aerial vehicles all have thesame plurality of flight plan sets, and that the number of flight plansets is at least equal to the number of unmanned aerial vehicles in thesystem.
 22. A system according to claim 1 wherein the system furthercomprises a master controller which can communicate with the singlecontroller, and wherein the master controller can send commands to thesingle controller which cause the single controller to broadcast aselected command to the plurality of unmanned aerial vehicles.
 23. Asystem according to claim 22 wherein the master controller is acontroller which is configured to control the motion of objects on astage, and wherein the commands which the master controller send to thesingle controller depend on the position which the objects occupy on thestage.
 24. A system according to claim 1 wherein the controller isfurther configured to send a localization signal which can be used todetermine the distance between said single controller and each vehicle.25. A system according to claim 1 wherein a command broadcasted by thesingle controller further comprises a start time or a delay.
 26. Asystem according to claim 1 wherein the processor of each vehicle isfurther configured to determine if a start time or delay time specifiedin a broadcasted command which has been received at the said vehicle, iswithin a predefined range; and wherein the processor is furtherconfigured to operate the vehicle to perform a default action if it isdetermined that the start time or delay time specified in a broadcastedcommand is outside of said predefined range.
 27. A method of controllinga plurality of unmanned aerial vehicles, the method comprising: using asingle controller to broadcast a command to all of the plurality ofunmanned aerial vehicles so that each of the plurality of unmannedaerial vehicles receive the same command; and at each of the unmannedaerial vehicles, receiving at the processor of that unmanned aerialvehicle the command which has been broadcast by the single controller tosaid plurality of unmanned aerial vehicles; retrieving from a memory ofthat aerial vehicle, wherein said memory which stores a plurality ofpredefined flight plans each of which is assigned to a respectivecommand, the flight plan which is assigned in the memory to that commandwhich has been received at the processor; and operating the aerialvehicle to follow the retrieved flight plan.
 28. An aerial vehicle whichcomprises: a memory which stores at least one predefined flight planeach of which is assigned to a respective command; a control unit whichis configured such that it can control the flight of the vehicle so thatthe flight of the vehicle follows a flight plan; and a processor whichis configured such that it can (i) receive a command which has beenbroadcasted; (ii) retrieve from its memory the flight plan which isassigned in the memory to that command; and (iii) send the retrievedflight plan to the control unit; wherein the control unit is configuredsuch that it controls the flight of the vehicle so that the flight ofthe vehicle follows said flight plan which it receives from saidprocessor.
 29. An aerial vehicle according to claim 28 furthercomprising a clock.